主题
作用
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联动说明
- 想让死亡流程更顺滑:搭配 AutoRespawn
- 想减少死亡损失:搭配 KeepInventory
- 想在小游戏或跑酷中减少额外消耗:可再配合 DurabilityProtect
注意事项
- 它只处理虚空伤害,不会处理普通摔落、岩浆、火焰或战斗伤害
- 如果玩家设置了其他世界的重生点,开启
use-respawn-location后也可能被拉回那个重生点 - 如果你只希望个别地图有虚空保护,请不要直接全世界开启
