Skip to content

作用

VoidProtect 用于在玩家受到虚空伤害时取消伤害,并把玩家拉回安全点。

它同时支持在救援后:

  • 回满生命值
  • 补满饥饿
  • 清除着火状态
  • 发送提示消息

默认配置:GroovyConfig/VoidProtect.yml

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

配置示例

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

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

# 玩家脱离虚空后的提示消息
# 留空 '' 表示不发送
# 支持颜色符号,如 &a &c
message: '&a你已脱离虚空伤害。'

# 是否优先传送到玩家重生点
# 开启后会优先使用床 / 重生锚设置的位置
# 若玩家未设置重生点,则回退到当前世界出生点
use-respawn-location: true

# 是否在救援后回满生命值
heal-to-max: true

# 是否在救援后重置饥饿值
reset-food: true

# 是否在救援后清除着火状态
clear-fire: true

关键项说明

worlds

限定脚本生效的世界。

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

如果你只在空岛、跑酷或末地外围需要虚空保护,建议只填对应世界。

message

玩家成功脱离虚空后发送的提示消息。

use-respawn-location

是否优先传送到玩家的重生点。

当前实现中:

  • 若玩家已有有效重生点,则优先传送过去
  • 若没有,则回到当前世界出生点

heal-to-max

是否在救援后把生命值恢复到当前最大生命值。

reset-food

是否在救援后把饥饿、饱和度、疲劳值重置为满状态。

clear-fire

是否在救援后清除着火状态。

实际行为

当前实现监听的是 EntityDamageEvent

只要满足:

  • 受伤实体是玩家
  • 伤害原因是 VOID
  • 脚本已启用
  • 当前世界命中 worlds

就会先取消伤害,再把玩家调度回安全点,并按配置恢复状态。

为了避免同一名玩家在极短时间内重复触发救援,当前脚本还会临时记录正在处理的玩家 ID。

启用与重载

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

text
/hncore reload scripts

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

text
/hncore reload

联动说明

注意事项

  • 它只处理虚空伤害,不会处理普通摔落、岩浆、火焰或战斗伤害
  • 如果玩家设置了其他世界的重生点,开启 use-respawn-location 后也可能被拉回那个重生点
  • 如果你只希望个别地图有虚空保护,请不要直接全世界开启

HN 系列插件文档