我的权限

我的权限

一个为Hytale服务器设计的高性能、分层权限管理系统。

实用

MyPermissions —— Hytale 的高级层级权限管理

image

MyPermissions 是一个专为 Hytale 专用服务器打造的高性能、稳健的权限管理解决方案。通过递归继承引擎,它为管理员提供对玩家能力的精细控制,确保任何规模的服务器的可扩展性和易用性。


🚀 主要特性

  • 递归组继承:创建复杂的权限树,子组自动继承父组的节点。
  • 灵活的权限格式:全面支持精确节点、完全通配符(*)、部分通配符(server.*)以及显式否定(-node)以覆盖更宽泛的授权。
  • 丰富的聊天元数据:管理玩家的前缀和后缀,支持完整的颜色代码(&c&l 等)和优先级系统,以确定哪个组的样式生效。
  • 安全性与可靠性:系统在每次保存前自动生成配置备份,以便在出错时快速恢复。
  • 实时更新:使用 /mpreload 命令即可立即应用更改,无需重启服务器。

image

image

image

image

image

image


👤 用户管理命令

  • /mp:打开用户界面。
  • /mpuser-add <玩家> <组>:将玩家分配到指定组。
  • /mpuser-remove <玩家> <组>:将玩家从指定组移除。
  • /mpuser-info <玩家>:显示玩家的活跃组和权限详情。
  • /mpuser-addperm <玩家> <节点>:为单个玩家授予特定权限节点。
  • /mpuser-removeperm <玩家> <节点>:移除玩家的特定权限节点。

👥 组管理命令

  • /mpgroup-list:显示所有组及其各自优先级。
  • /mpgroup-info <组>:显示组详情,包括权限、父组和元数据。
  • /mpgroup-create <名称>:初始化一个新的权限组。
  • /mpgroup-delete <名称>:从系统中移除一个现有组。
  • /mpgroup-addperm <组> <节点>:为整个组添加权限节点。
  • /mpgroup-setparent <组> <父组>:配置一个组继承另一个组的权限。
  • /mpgroup-setpriority <组> <数字>:定义前缀/后缀显示的优先级(数字越大覆盖越小)。
  • /mpgroup-rename <旧名称> <新名称>:重命名一个组。

🔧 系统实用工具

  • /mpcheck <玩家> <节点>:实时测试以验证玩家是否拥有特定权限节点。
  • /mpreload:强制插件从磁盘刷新所有数据。
  • /mpbackup-list:列出所有可用的配置备份。
  • /mpbackup-restore <备份名称>:从特定备份文件恢复配置。

🛠️ 安装与要求

  1. 确保服务器运行 Java 25 (LTS),这是 Hytale 引擎所要求的。
  2. MyPermissions.jar 文件放入服务器 mods/ 目录。
  3. 重启服务器以在 mods/MyPermissions/ 目录生成默认配置文件。
  4. 所有管理命令都需要 myperms.admin 权限节点。

🎨 颜色代码支持

你可以在前缀、后缀和聊天中使用以下代码:

  • 颜色&0&f(黑色到白色)。
  • 格式化&l(粗体)、&o(斜体)、&r(重置)。
  • 示例&6&l[VIP] 将显示 粗体金色 前缀。

🐛 错误报告与反馈

你的反馈对于 MyPermissions 的持续改进至关重要!

  • 发现 Bug? 请在下方评论区描述问题。
  • 技术细节:报告时请说明你的服务器版本,如果可能,请提供 logs/ 文件夹中的错误日志。
  • 建议:有新功能的想法?欢迎在评论区分享!

技术信息

该插件使用 Hytale 的 原生 Codec 系统 构建,确保高速数据序列化并防止配置损坏。它经过优化,能处理庞大的权限树,同时对服务器每秒刻数的影响降到最低。


🔌 开发者 API

Main.java 中的公共方法

// 检查玩家是否拥有权限
Main.hasPermission(UUID uuid, String permission); // 返回 boolean

// 获取玩家的前缀
Main.getPermissionManager().getUserPrefix(String uuid); // 返回 String

// 获取玩家的后缀
Main.getPermissionManager().getUserSuffix(String uuid); // 返回 String

// 将玩家添加到组
Main.getPermissionManager().addUserToGroup(String uuid, String groupName); // 返回 boolean

// 清除权限缓存
Main.getPermissionManager().clearCache();
Main.getPermissionManager().clearCache(UUID uuid);

为 Hytale 专用服务器开发。