Skip to content

作用

Elevator 用于实现简易电梯功能,玩家通过跳跃或潜行在垂直方向上快速移动到上方或下方的同类方块。

它支持:

  • 跳跃时传送到上方的同类方块
  • 潜行时传送到下方的同类方块
  • 自定义可用作电梯的方块类型
  • 自定义传送音效
  • 世界白名单控制

默认配置:GroovyConfig/Elevator.yml

如果你在 config.yml -> feature-scripts.config-directory 中改过脚本配置目录,请以实际目录为准。

配置示例

yml
# 是否启用该脚本
enabled: false

# 生效世界列表
# 留空 [] 表示所有世界都生效
# 示例:
# worlds:
#   - world
#   - world_nether
worlds: []

# 电梯方块类型列表
# 可以定义多种方块作为电梯
# 示例:铁块、金块、绿宝石块、钻石块
elevatorBlocks:
  - IRON_BLOCK
  - GOLD_BLOCK
  - DIAMOND_BLOCK
  - EMERALD_BLOCK

# 距离配置
distance:
  # 两个电梯方块的最小 Y 轴距离
  # 小于此距离的电梯方块不会被识别,防止误触发
  min: 3
  
  # 两个电梯方块的最大 Y 轴距离(搜索范围)
  # 超过此距离的电梯方块不会被搜索,避免性能问题
  max: 256

# 音效配置
sound:
  # 是否启用音效
  enabled: true
  
  # 音效类型
  # 可用音效列表:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html
  # 常用音效:
  # - ENTITY_ENDERMAN_TELEPORT(末影人传送)
  # - ENTITY_PLAYER_LEVELUP(升级音效)
  # - BLOCK_PORTAL_TRAVEL(传送门音效)
  # - ENTITY_EXPERIENCE_ORB_PICKUP(经验球拾取)
  type: ENTITY_ENDERMAN_TELEPORT
  
  # 音效音量(0.0 - 1.0)
  volume: 1.0
  
  # 音效音调(0.5 - 2.0)
  pitch: 1.0

# 粒子效果配置
particle:
  # 是否启用粒子效果
  enabled: true
  
  # 粒子类型
  # 可用粒子列表:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html
  # 常用粒子:
  # - PORTAL(传送门粒子)
  # - CLOUD(云朵粒子)
  # - ENCHANT(附魔台粒子)
  # - FLAME(火焰粒子)
  # - DRAGON_BREATH(龙息粒子)
  # - END_ROD(末地烛粒子)
  # - TOTEM_OF_UNDYING(不死图腾粒子)
  type: PORTAL
  
  # 粒子数量
  count: 20

关键项说明

worlds

限定脚本生效的世界。

  • []:所有世界生效
  • 填世界名列表:只在这些世界生效

如果你只在主世界或特定地图需要电梯功能,建议只填对应世界。

elevatorBlocks

可用作电梯的方块类型列表。

玩家必须站在这些方块上才能触发电梯传送。建议使用容易识别的方块,如:

  • IRON_BLOCK:铁块
  • GOLD_BLOCK:金块
  • DIAMOND_BLOCK:钻石块
  • EMERALD_BLOCK:绿宝石块
  • QUARTZ_BLOCK:石英块

distance

距离配置,控制电梯方块的识别范围。

distance.min

两个电梯方块的最小 Y 轴距离。

小于此距离的电梯方块不会被识别,防止误触发。默认值 3 表示上下电梯方块至少要相隔 3 格。

distance.max

两个电梯方块的最大 Y 轴距离(搜索范围)。

超过此距离的电梯方块不会被搜索,避免性能问题。默认值 256 可以覆盖整个世界高度。

sound

音效配置,控制传送时的音效播放。

sound.enabled

是否启用音效。设置为 false 可以关闭传送音效。

sound.type

音效类型名称。

常用音效:

  • ENTITY_ENDERMAN_TELEPORT:末影人传送音效
  • ENTITY_PLAYER_LEVELUP:升级音效
  • BLOCK_PORTAL_TRAVEL:传送门音效
  • ENTITY_EXPERIENCE_ORB_PICKUP:经验球拾取音效

完整音效列表:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html

sound.volume 和 sound.pitch

控制音效的音量和音调。

  • volume:音量,范围 0.0 - 1.0
  • pitch:音调,范围 0.5 - 2.0,1.0 为正常音调

particle

粒子效果配置,控制传送时的视觉效果。

particle.enabled

是否启用粒子效果。设置为 false 可以关闭传送粒子效果。

particle.type

粒子类型名称。

常用粒子:

  • PORTAL:传送门粒子
  • CLOUD:云朵粒子
  • ENCHANT:附魔台粒子
  • FLAME:火焰粒子
  • DRAGON_BREATH:龙息粒子
  • END_ROD:末地烛粒子
  • TOTEM_OF_UNDYING:不死图腾粒子

完整粒子列表:https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html

particle.count

粒子数量。数值越大,粒子效果越明显。默认值 20 提供适中的视觉效果。

实际行为

当前实现监听玩家的跳跃和潜行动作。

向上传送(跳跃):

  • 玩家站在电梯方块上
  • 玩家跳跃
  • 脚本在上方搜索同类电梯方块
  • 找到后传送玩家到该方块上方
  • 播放音效和粒子效果(如果启用)

向下传送(潜行):

  • 玩家站在电梯方块上
  • 玩家开始潜行
  • 脚本在下方搜索同类电梯方块
  • 找到后传送玩家到该方块上方
  • 播放音效和粒子效果(如果启用)

搜索规则:

  • 只搜索与当前方块相同类型的方块
  • 搜索范围受 distance.max 限制
  • 两个电梯方块的距离必须大于等于 distance.min
  • 找到最近的符合条件的方块

视觉和听觉反馈:

  • 传送时在起点和终点播放粒子效果(可配置类型和数量)
  • 传送时播放音效(可配置类型、音量和音调)
  • 可以通过配置单独关闭音效或粒子效果

使用示例

基础电梯

在建筑中垂直放置多个铁块,玩家站在铁块上:

  • 跳跃:传送到上一层的铁块
  • 潜行:传送到下一层的铁块

多层建筑快速移动

在高层建筑的每一层放置相同的电梯方块(如钻石块),玩家可以快速在楼层间移动。

矿洞快速上下

在矿洞的垂直通道中每隔一段距离放置电梯方块,方便玩家快速上下。

启用与重载

修改这个脚本的配置文件后,通常执行:

text
/hncore reload scripts

如果你改的是 config.yml 中的脚本目录名、脚本系统总开关等核心配置,则应执行:

text
/hncore reload

联动说明

注意事项

  • 电梯方块必须是完整方块,不能是半砖、楼梯等非完整方块
  • 上下两个电梯方块之间的距离必须大于等于 distance.min(默认 3 格),防止误触发
  • 上下两个电梯方块之间的距离不能超过 distance.max(默认 256 格)
  • 如果搜索范围内没有找到同类方块,传送不会发生
  • 建议在电梯方块周围留出足够空间,避免玩家传送后卡在方块中
  • 电梯方块应该暴露在外,玩家需要能够站在上面
  • 粒子效果和音效可以单独开关,如果觉得效果过于明显可以调整或关闭
  • 不同的电梯方块类型可以独立工作,不会互相干扰(铁块电梯和金块电梯是分开的)

HN 系列插件文档