主题
作用
WorldProtect 用于按世界限制玩家的基础方块操作,包括:
- 破坏方块
- 放置方块
- 与方块交互
默认配置:GroovyConfig/WorldProtect.yml
如果你在
config.yml -> feature-scripts.config-directory中改过脚本配置目录,请以实际目录为准。
配置示例
yml
# 是否启用该脚本
enabled: true
# 受保护的世界列表
# 只有在这里列出的世界才会应用保护
# 示例:
# worlds:
# - world
# - world_nether
worlds:
- world
# 是否阻止破坏方块
prevent-break: true
# 是否阻止放置方块
prevent-place: true
# 是否阻止与方块交互
# 例如箱子、工作台、按钮、拉杆等
prevent-interact: true
# 拥有该权限的玩家可绕过保护
# 留空 '' 表示无人可绕过(OP 也不会自动绕过,需脚本内另外处理)
bypass-permission: hncore.scripts.worldprotect.bypass
# 破坏方块时的提示消息
# 支持颜色符号,如 &a &c
# 留空 '' 表示不发送消息
break-message: '&c此世界禁止破坏方块!'
# 放置方块时的提示消息
place-message: '&c此世界禁止放置方块!'
# 交互方块时的提示消息
interact-message: '&c此世界禁止交互!'关键项说明
worlds
指定要保护的世界列表。
这是一个按“世界”工作的保护脚本,不是按区域工作的脚本。
prevent-break
是否阻止玩家破坏方块。
prevent-place
是否阻止玩家放置方块。
prevent-interact
是否阻止玩家与方块交互。
这项会影响箱子、工作台、按钮、拉杆等可交互方块,所以如果你发现玩家连箱子都打不开,优先检查这里。
bypass-permission
设置绕过保护的权限节点。
当前实现里,只要玩家:
- 拥有这个权限,或
- 是 OP
都可以绕过保护。
实际行为
当前实现分别监听:
BlockBreakEventBlockPlaceEventPlayerInteractEvent
其中交互限制只会拦截:
- 主手触发
RIGHT_CLICK_BLOCK- 且目标方块本身是可交互方块
所以它不是“所有点击都拦”,而是更精确地针对常见交互方块。
启用与重载
修改这个脚本的配置文件后,通常执行:
text
/hncore reload scripts如果你改的是 config.yml 中的脚本目录名、脚本系统总开关等核心配置,则应执行:
text
/hncore reload联动说明
- 想连爆炸破坏一起拦住:搭配 ExplosionProtect
- 想把环境生物搬运也一起拦住:搭配 EndermanProtect
注意事项
- 它保护的是整个世界,不是单独区域
- 如果你仍需要玩家在主城使用部分交互方块,应谨慎处理
prevent-interact bypass-permission留空时,只有配置了权限节点或 OP 绕过的逻辑会失效
