世界保护

世界保护

区域保护与领地声明系统:保护建筑,管理PvP区域、成员/所有者,以及可选的世界地图标记。

实用

WorldProtect

WorldProtect 是一款受 WorldGuard 启发的灵活区域保护插件,专为现代可用性、可视化地图集成以及简洁的基于标志的系统而设计。

它允许服务器所有者保护区域、控制玩家交互、管理建筑权限,并在世界地图上可视化显示区域——所有这些都通过精细的权限和可自定义消息实现。

专为 play.HolyTale.net 的 Hytale 生存服务器打造

快速入门

  1. 安装:下载最新版本并将 JAR 文件放入服务器的 mods/ 文件夹
  2. 重启 您的服务器
  3. 选择区域:使用 /pos1/pos2 选择要保护区域的两个对角
  4. 认领土地:然后使用 /rg claim <name> 创建区域
  5. 查看您的认领地:打开您的地图 (M) - 已认领的区域会以彩色显示!

功能特点

  • 区域地图叠加 - 已认领的区域在世界地图上以彩色显示
  • 交互控制 - 完全控制玩家在区域内的交互方式
  • 区域标志系统 - 每个区域支持多个独立标志
  • 自定义消息与本地化 - 支持语言文件/彩色聊天消息
  • 性能与稳定性 - 优化的取消处理/减少客户端/服务器同步警告

命令

基础命令集 /rg:

/rg claim <region> — 从当前选择区域创建受保护的认领地 /rg menu — 打开区域 GUI 菜单 /rg menu <region> — 打开特定区域菜单 /rg wand — 切换区域选择魔杖 /rg wand clear — 清除当前选择 /rg define <region> — 从选择区域创建管理员区域 /rg remove <region> — 删除一个区域(所有者/管理员) /rg info — 查看区域信息(或当前区域) /rg priority <region> <priority> — 设置区域优先级(区域重叠时优先级高的获胜) /rg redefine <region> — 替换区域边界 /rg select <region> — 用区域边界替换您的选择 /rg setparent <region> <parent> — 设置或清除区域的父级 /rg addmember <region> <player> — 添加成员 /rg removemember <region> <player> — 移除成员 /rg addowner <region> <player> — 添加所有者 /rg removeowner <region> <player> — 移除所有者 /rg flag <region> <flag> allow|deny|none — 设置区域标志 /rg reload — 重载配置、消息和区域

权限

  • dev.worldprotect.worldprotect.command.rg — 允许使用 /rg (基础命令访问)
  • worldprotect.bypass — 绕过所有区域限制和权限检查(管理员覆盖)
  • worldprotect.reload — 允许使用 /rg reload (重载配置、消息和区域)
  • worldprotect.menu.others — 允许打开其他玩家的菜单(/rg menu
  • worldprotect.addmember — 允许使用添加成员命令
  • worldprotect.removemember — 允许使用移除成员命令
  • worldprotect.addowner — 允许使用添加所有者命令
  • worldprotect.removeowner — 允许使用移除所有者命令
  • worldprotect.remove — 允许对自己的区域使用 /rg remove
  • worldprotect.flag.pvp — 允许更改 PvP 标志(/rg flag pvp allow|deny
  • worldprotect.flag.build — 允许更改建筑标志(/rg flag build allow|deny|none
  • worldprotect.flag.falldamage — 允许更改摔落伤害标志(/rg flag falldamage allow|deny
  • worldprotect.flag.mobdamage — 允许更改生物伤害标志(/rg flag mobdamage allow|deny
  • worldprotect.flag.chestaccess — 允许更改箱子访问标志(/rg flag chest-access allow|deny
  • worldprotect.flag.use — 允许更改使用/交互标志(/rg flag use allow|deny
  • worldprotect.flag.dooraccess — 允许更改门访问标志(/rg flag door-access allow|deny
  • worldprotect.flag.lightaccess — 允许更改光源访问标志(/rg flag light-access
  • worldprotect.flag.notify — 允许更改通知(/rg flag notify on|off
  • worldprotect.flag.greeting — 允许更改欢迎文本(/rg flag greeting <text...>
  • worldprotect.flag.farewell — 允许更改告别文本(/rg flag farewell <text...>
  • worldprotect.flag.map — 允许切换区域在地图 (M) 上的可见性(/rg flag map on|off
  • worldprotect.flag.firespread - 允许更改火焰蔓延标志(/rg flag fire-spread allow|deny
  • worldprotect.flag.mobspawning — 允许更改生物生成标志(/rg flag mob-spawning allow|deny
  • worldprotect.flag.itempickup — 允许更改地面拾取标志(/rg flag item-pickup allow|deny
  • worldprotect.flag.itemgrab — 允许更改手动拾取 (F) 标志(/rg flag item-grab allow|deny
  • worldprotect.flag.entry — 允许更改进入标志(/rg flag entry allow|deny
  • worldprotect.flag.player-enter-command — 允许更改玩家进入执行命令标志(/rg flag player-enter-command <command...>
  • worldprotect.flag.server-enter-command — 允许更改服务器进入执行命令标志(/rg flag server-enter-command <command...>
  • worldprotect.flag.blockedcmds — 允许更改禁止命令标志(/rg flag blocked-cmds <commands...>
  • worldprotect.flag.itemdrop — 允许更改物品丢弃标志(/rg flag item-drop allow|deny
  • worldprotect.flag.particles — 允许切换区域边界粒子效果(/rg flag particles allow|deny
  • worldprotect.flag.grassspread — 允许更改草传播标志(/rg flag grass-spread allow|deny
  • worldprotect.flag.mushroomspread — 允许更改蘑菇传播标志(/rg flag mushroom-spread allow|deny
  • worldprotect.redefine — 允许用当前选择替换区域边界(/rg redefine
  • worldprotect.select — 允许用区域边界替换当前选择(/rg select
  • worldprotect.setparent — 允许设置或清除区域父级(/rg setparent [parent])
  • worldprotect.wand — 允许使用(/rg wand
  • worldprotect.wand.clear — 允许使用(/rg wand clear
  • dev.worldprotect.worldprotect.command. — 允许使用 /
  • hytale.editor.selection.use — 允许使用区域选择工具(通过选择设置 pos1pos2

为什么下载 WorldProtect?

如果您托管一个多人服务器,WorldProtect 能带来清晰度、安全性和控制力:

  • 保护建筑和基地,让玩家无需担心被破坏或盗窃而投入时间
  • 轻松的土地认领,通过简洁的 /rg 工作流程,以及面向团队和派系的成员/所有者管理
  • 即时创建受保护区域(出生点、市场、城镇、活动区域),并支持管理员区域和优先级
  • 通过标志控制每个区域的游戏玩法:安全区、PvP 竞技场、允许建筑的区域、限制进入区域等等
  • 地图可见性帮助玩家一目了然地了解边界(已认领的区域在世界地图上以彩色显示)
  • 优化且稳定:重构内部逻辑以减少开销、错误和客户端/服务器同步警告

配置

WorldProtect 包含一个配置系统,允许您精细调整服务器规则,包括:

  • 方块/建筑保护(防止在未允许的地方破坏/放置)
  • PvP 保护规则(安全区、竞技场、野外逻辑)
  • 重叠处理与优先级规则(当区域相交时,哪个区域获胜)
  • 区域限制(每个玩家的认领上限、最大区域面积、管理员区域行为)
  • 地图叠加/标记集成(显示/隐藏区域并调整显示行为)

面向开发者的 API

WorldProtect 包含一个面向公众的开发者 API,用于集成和扩展。

这允许其他模组/插件查询区域数据、检查保护规则、修改区域以及监听区域变更。

获取 API

import dev.worldprotect.worldprotect.api.WorldProtectApi;
import dev.worldprotect.worldprotect.api.WorldProtectApiProvider;

WorldProtectApi api = WorldProtectApiProvider.getApi();
if (api == null) {
    return;
}

// 示例用法

api.getPrimaryRegionAt(world.getName(), x, y, z).ifPresent(region -> {
    System.out.println("Inside region: " + region.id());
});

boolean canBuild = api.canBuild(player, world, blockPos);
boolean pvpAllowed = api.isPvpAllowed(world.getName(), x, y, z);

// 修改区域

api.addMember(world.getName(), "spawn", playerUuid);
api.setBuildFlag(world.getName(), "spawn", WorldProtectBuildFlag.DENY);
api.setFlag(world.getName(), "spawn", WorldProtectFlag.PVP, false);
api.setGreetingText(world.getName(), "spawn", "Welcome to spawn!");

// 创建 / 删除区域

api.createRegion(world, "market", 0, 60, 0, 32, 90, 32, ownerUuid);
api.deleteRegion(world, "market");

// 区域钩子

api.registerListener(new WorldProtectRegionListener() {
    @Override
    public void onRegionCreated(WorldProtectRegionSnapshot region) {
        System.out.println("Created: " + region.id());
    }

    @Override
    public void onRegionChanged(WorldProtectRegionChange change) {
        System.out.println(change.type() + " -> " + change.region().id());
    }
});