通用权限

通用权限

你是否曾在服务器上安装过某个模组,而它的命令并未提供权限节点?你是否曾因某个模组不允许你阻止对其根命令的访问而烦恼(说你呢,LuckPerms)?那么,这个模组解决了这个问题,而且还不止于此。

管理

Universal Perms

你是否曾经遇到过不得不安装一个没有为其命令提供权限节点的模组的情况? 你是否曾因某个模组不允许你阻止访问其根命令而苦恼(说的就是你,luckperms)? 好吧,这个模组解决了这个问题,而且还不止这些。

用法

首先,你需要安装另一个模组来为你管理权限。我推荐 luckperms,但 player roles 应该也同样有效。 在你开始使用这个模组之前,我建议先登录一次,这样 luckperms 就能识别所有节点,你就能在网页编辑器中看到它们了。

现在我们开始设置权限。这个模组为每个命令提供两个权限,一个以 universal_perms:use/ 开头,另一个以 universal_perms:view/ 开头。

如果设置了,use 权限会覆盖命令的常规要求,使任何被设为 true 的人都能使用该命令,同时拒绝任何被设为 false 的人的访问。 view 权限在你只想隐藏自动补全,但仍希望允许宏或其他功能时很有用。

对于所有原版命令(是的,甚至包括 execute),子命令和参数都作为它们自己的子节点可见,例如,要禁用 /help <command> 的使用,但不禁用 /help,你可以使用 universal_perms:use/help.command 节点。但是,这对于使用自己子命令系统的模组不起作用(为什么啊 luckperms?)。

你甚至可以通过使用 universal_perms:use 和 universal_perms:view 作为权限节点来影响所有命令,但我实在看不出这有什么好处。

杂项权限

这个模组还为一些不是命令但仍使用权限检查的东西添加了一些权限节点。

  • (26.2 之前)universal_perms.misc.selector 允许使用像 @a 和 @e 这样的选择器。在原版中,这需要权限等级 2。 (26.2 之后,这现在由 Minecraft 添加为 minecraft:commands/entity_selectors)
  • universal_perms:misc/query_block_nbt 允许客户端在使用 F3 + I 时从服务器查询一些方块数据。在原版中,这需要权限等级 2
  • universal_perms:misc/query_entity_nbt 与上面相同,但用于实体
  • universal_perms:misc/update_difficulty 允许在暂停菜单中更改难度。
  • universal_perms:misc/update_difficulty_lock 允许更改难度锁定状态,默认值为 universal_perms:misc/update_difficulty
  • universal_perms:misc/use_admin_blocks 允许 Minecraft 的 isCreativeLevelTwoOp 检查在玩家处于创造模式时通过。 这主要用于命令方块和调试棒之类的管理工具
  • (1.21.11+)universal_perms:misc/gamemode_switcher 使服务器接受玩家切换游戏模式。 客户端还必须通过模组或更高的权限等级被告知此权限。

还有一个 universal_perms:misc/forced_permission_level 元权限,可以设置它来给予玩家一个原版权限等级。 权限等级被用作这个模组添加的所有检查的默认值。它们也会被发送到客户端,并在那里为某些功能(如游戏模式切换器)进行检查 它们应该能覆盖所有尚未被覆盖的权限检查。

关于权限语法的说明

随着 Fabric API 引入权限 API,UniversalPerms 权限的语法已经改变。 所有权限节点现在都采用标识符的形式,就像 Minecraft 中其他地方使用的那样。 这一变化发生在 26.2 更新期间。在那之前的版本中,将所有权限节点中的 : 和 / 替换为 .。

另请注意,LuckPerms 对标识符权限名称的解释有些奇怪:LuckPerms 会将 : 替换为 .。 这意味着,例如 universal_perms:use/help 会变成 universal_perms.use/help。

陷阱与怪癖

  1. 在向客户端发送可用命令方面,view 权限优先于 use 权限。这意味着你可以创造出命令可见但不可用的情况。
  2. 作为其他命令别名的命令,当其目标被禁止/隐藏但它们本身可见时,行为会很奇怪。以下是一些需要注意的原版别名列表:
    • tell 和 w 重定向到 msg
    • tp 重定向到 teleport
    • xp 重定向到 experiance
    • tm 重定向到 teammsg
  3. 如果其他模组比平时更晚添加它们的命令,或者在 universal perms 之后干扰它们的 requirements,则无法保证与其他模组的兼容性。
  4. 许多杂项权限在没有对客户端进行修改或没有更高的上报权限等级的情况下无法工作。