区域管理器

区域管理器

用于管理和创建Hytale区域的系统

实用

区域管理器插件

概述

Hytale 区域管理器是一款面向 Hytale 服务器的专业区域保护系统,具备统一的命令结构和高级权限系统。

主要特性

  • 基于标志的权限系统:每个标志现在拥有专用的修改和绕过权限
  • 精细的访问控制:为所有者、成员和管理员设置差异化权限
  • 每个世界的全局区域:为每个世界提供全局保护配置
  • 区域创建:统一的区域选择与创建系统
  • 完整的保护体系:建造、破坏、交互、PvP、PvE
  • 多世界支持:覆盖服务器所有世界
  • 优先级系统:智能处理重叠区域
  • 自动持久化:自动保存并附带 JSON 备份
  • 线程安全操作:专为多玩家服务器设计
  • 基于区块的索引:针对最优性能进行优化
  • 增强的权限系统:基于角色的访问控制

命令

统一区域命令

  • /region pos1 - 设置第一个选择点
  • /region pos2 - 设置第二个选择点
  • /region deselect - 清除当前选择
  • /region create <名称> - 从选择区域创建区域
  • /region delete <名称> - 删除区域
  • /region flag <区域> <标志> <值> - 设置区域标志
  • /region info [名称] - 显示区域信息
  • /region here - 显示当前位置的区域
  • /region list - 列出当前世界中的所有区域
  • /region priority <区域> <优先级> - 设置区域优先级
  • /region memberflag <区域> <标志> <值> - 设置成员专属标志
  • /region member <区域> <玩家> <操作> <角色> - 管理区域的所有者和成员(操作:add/remove/list | 角色:owner/member)
  • /region membermode <区域> <模式> - 切换全局标志与成员专属标志(true = 全局,false = 专属)

区域标志

玩家标志

  • player.entry - 允许玩家进入区域(默认:true)
  • player.pvp - 允许玩家对战(默认:true)
  • player.pve - 允许玩家与实体对战(默认:true)
  • player.chat - 允许玩家发送聊天消息(默认:true)
  • player.craft - 允许在工作台制作(默认:true)

动作标志

  • action.build - 允许放置方块(默认:true)
  • action.break - 允许破坏方块(默认:true)

交互标志

  • interact - 允许与方块进行一般交互(默认:true)
  • interact.container - 允许访问容器(默认:true)
  • interact.chest - 允许访问箱子(默认:true)
  • interact.bench - 允许访问工作台和家具(默认:true)
  • interact.door - 允许访问门(默认:true)
  • interact.chair - 允许访问椅子和凳子(默认:true)
  • interact.portal - 允许访问传送门和传送器(默认:true)

物品标志

  • item.drop - 允许丢弃物品(默认:true)
  • item.pickup - 允许拾取物品(默认:true)

生物标志

  • mob.spawning - 允许自然生物生成(默认:true)
  • mob.damage - 允许生物对玩家造成伤害(默认:true)

消息标志

  • message.greet.title - 进入区域时显示的主标题
  • message.greet.subtitle - 进入时显示的副标题
  • message.greet.actionbar - 进入时显示的动作条消息
  • message.greet.chat - 进入时显示的聊天消息
  • message.greet.notification - 进入时显示的通知
  • message.farewell.title - 离开区域时显示的主标题
  • message.farewell.subtitle - 离开时显示的副标题
  • message.farewell.actionbar - 离开时显示的动作条消息
  • message.farewell.chat - 离开时显示的聊天消息
  • message.farewell.notification - 离开时显示的通知
  • message.notification.icon - 通知图标(默认:"Weapon_Sword_Mithril")
  • message.notification.duration - 通知持续时间,单位秒(默认:3)

管理标志

  • owners - 所有者 UUID 的逗号分隔列表
  • members - 成员 UUID 的逗号分隔列表
  • members-use-global-flags - 若为 true,成员使用全局标志;若为 false,成员拥有专属值(默认:true)
  • owners-modify-flags - 允许所有者修改区域标志(默认:true)
  • members-can-invite - 允许成员邀请其他玩家(默认:false)
  • permission-group - 访问所需的权限组

区域管理器混入标志

要使这些标志正常工作,需要 区域管理器混入Hyxin,因为基础游戏目前缺少必要的方法和事件。

  • player.keepInventory - 允许玩家死亡后保留物品栏
  • player.command - 允许禁止在区域内执行命令
  • player.command.allow - 允许的命令列表,用逗号分隔
  • player.command.deny - 禁止的命令列表,用逗号分隔
  • action.build.fluids - 允许阻止放置流体
  • action.build.fluids.{流体ID} - 允许阻止放置指定流体

权限系统

标志专属权限

每个标志现在拥有两个专属权限:

  1. 修改权限razorplay.regionmanager.flags.modify.{键}

    • 示例:razorplay.regionmanager.flags.modify.player.entry
    • 允许修改特定标志的值
  2. 绕过权限razorplay.regionmanager.flags.bypass.{键}

    • 示例:razorplay.regionmanager.flags.bypass.player.entry
    • 允许忽略标志限制

访问角色

  • 管理员:拥有 region.admin 权限的玩家拥有完全控制权
  • 所有者:可以管理自己的区域(取决于 owners-modify-flags 设置)
  • 成员:基于区域配置的有限权限

命令权限

  • /region create - 需要先设置选择点
  • /region delete - 需要管理员权限或区域所有权
  • /region flag - 权限取决于标志类型和用户角色
  • /region priority - 需要管理员权限或区域所有权
  • /region member - 需要管理员、所有者或拥有邀请权限的成员身份
  • /region memberflag - 需要管理员权限或拥有修改权限的所有者身份

事件保护系统

该插件包含以下保护系统:

  • 方块:方块的破坏和放置
  • 交互:访问箱子、门、家具等
  • 战斗:PvP 和 PvE
  • 物品:物品的丢弃和拾取
  • 聊天:聊天消息
  • 制作:工作台
  • 过渡:进入和离开区域

安装

  1. 将插件 JAR 文件放入 Hytale 服务器的 mods 文件夹
  2. 重启服务器
  3. 使用命令创建和管理区域

技术细节

  • 针对 Hytale 的 ECS 架构构建
  • 使用基于区块的空间索引
  • 线程安全的单例模式
  • 基于 GSON 的持久化
  • 使用 AbstractPlayerCommand 统一命令结构
  • 增强的权限验证系统

许可证

MIT 许可证

支持

如有问题或疑问,请联系开发者。