标题: Group Manager
本帖最后由 Greensky 于 2020-6-27 21:58 编辑
Group Manager
Group Manager(有时简称 GM)是一款用于控制权限的插件。它允许你为用户组设立权限,并将玩家添加到这些用户组,便可以有拥有允许使用特定权限的多个等级。创建一个自定义的等级系统,对于大部分 Minecraft 服务器来说是非常有用的。没有它,设置服务器限制玩家的程度是比较困难的。
Group Manager 是作为一个独立的组件,而且当前不是可用的 BukkitDev 批准项目。
视频教程涉及这个教程的一小部分。——其中有一些次要的、过时的、不准确的内容。所以当这个教程和视频不符时,请以这个教程的内容为准。
【Plugin Wiki 出品】
目录 - 1 基本思路
- 2 初始安装
- 3 权限
- 3.1 权限节点
- 3.2 概要节点(通配符“*”)
- 3.3 否定节点
- 3.4 例外节点
- 3.5 权限范例
- 4 变量
- 4.1 聊天插件
- 4.2 保护插件(AntiGrief)
- 5 插件迁移
- 6 Group Manager 命令
|
【Plugin Wiki 出品】
基本思路
Group Manager 允许通过尽可能多地创建需要的用户组和副用户组,有效地管理用户的权限。配置可以非常简单,或是如需要的那样复杂。
最传统的权限系统(如下)使用了组继承,从最上方的新人(Newbie)用户组开始,一直到最下方的服主(Owner)。在小型服务器上可以合并协管员(Moderator)和管理员用户组,但大多数人会在管理员和协管员获得的权限上有不同的想法。
- Newbie(新人)
- Newbie用户组包括最基础的权限节点,应该给予所有新加入玩家在注册时保证安全的权限。
- Player(玩家)
- Player用户组包括了所有玩家可以使用的权限。一般包含经济、基础传送,和其他的基础指令。
- Moderator(协管员)
- Admin(管理员)
- 管理员和协管员两个用户组可以基于你的喜好合并或更深入地分开。典型地,最低级的协管员等级拥有踢出玩家、监禁玩家的权限,高级的协管员可以获得封禁玩家IP地址、隐身、生成创造模式物品的允许。
- Owner(服主)
- 服主用户组一般允许使用所有权限/命令,且通常是唯一一个拥有控制插件、规定用户组、关闭/重启服务器命令的用户组。
【Plugin Wiki 出品】
初始安装
Group Manager 的安装非常容易:
- 安全地关闭服务器。
- 将 Group Manager 插件放入 plugins 文件夹。 (EssentialsGroupManager.jar/GroupManager.jar)
- 启动然后关闭服务器。
- 修改初始的 config.yml 文件。
- 重启服务器(在游戏中应用更新的 Group Manager 配置时,输入 /manload)。
配置文件
第一次下载 Group Manager 时,一般只有 .jar 文件。在第一次运行 Group Manager 时,它会生成可以编辑的配置文件。
标准的配置和范例里详细的布局很相似,但在使用之前至少需要更改一点,需要将自己加入管理员。
第一次生成的配置文件时的文件目录结构会看起来像这样:
- plugins/
- GroupManager/
- config.yml
- globalgroups.yml
- backups/
- worlds/
- world/
- groups.yml
- users.yml
复制代码
配置文件的细节可以在配置页面找到。
【Plugin Wiki 出品】
权限
Group Manager 配置的核心是权限节点,能够准确地控制一个玩家能干什么、不能干什么,是 Group Manager 的重点所在。每一个插件都有各自的权限节点,关联于具体插件的命令。
Essentials 插件在它的命令参考里有一个关于权限完整的列表。至于其他的插件,需要查看和它们有关的文档帮助。
权限节点
每一个支持权限的插件,都会有他们各自的权限节点。
权限节点大致语法:<插件名>.<命令名>
- 语法范例: essentials.tp (允许一个玩家通过使用 Essentials 的 /tp 命令进行传送)
- Essentials 是插件名称,命令是 /tp
父节点(权限节点前半部分)不一定总是插件的名称,所以请在构建用户组之前先检查。这个特性允许不同的插件拥有相同的指令,但是在指明选定哪个插件的指令为默认后不会互相起冲突。
- 例子:essentials.god 和 worldguard.god
概要节点(通配符“*”)
Group Manager 支持概要权限,使用通配符允许所有注册的附属的权限
- essentials.*:允许使用所有的 essentials 命令
- essentials.kits.*:允许使用所有的 kit 工具包
也可以不用指明插件,直接使用“*”通配符本身。这个使指明的用户组拥有权限使用所有插件的所有命令。注意:有冲突的命令会变得不稳定,除非使用否定节点否认。请自行承担风险,也不是所有的插件都正确地注册了它们的权限。
否定节点
Group Manager 支持否定节点,允许收回使用命令的权限。和组继承配合是非常有用的。
- essentials.kits.*:给予所有 /kit 的权限
- -essentials.kits.admin:仅移除 /kit admin 的权限(注意开头的减号“-”)
在使用大型通配符权限(概要节点)的时候,这个是非常有用的,例如给予一个管理员所有的指令,但移除Group Manager命令的权限部分。将概要节点和否定节点组合在一起,可以轻松地移除许多的附属命令。
- -essentials.kits.*:移除所有 /kit 的权限
例外节点
Group Manager 支持可以覆盖否定节点的例外节点,允许你轻易地恢复命令的权限。这在移除所有命令的权限,并把每个单独地加回来时是有用的。
- -essentials.signs.create.*:移除创建所有 Essentials 牌子的权限
- +essentials.signs.create.trade:覆盖并给予创建交易牌子的权限
权限范例
【Plugin Wiki 出品】
变量
Group Manager 允许像规定权限一样规定变量。每一个用户组的变量都可以有不同的取值。它们往往在基于用户组的插件(如 VIP 插件等)使用。这里有两个主要的例子:"prefix"(前缀)“suffix”(后缀),和“build”开关。
聊天插件
大部分聊天插件,会为了基于用户组给予玩家自定义名称,而读取 prefix(前缀)和 suffix(后缀)取值。
EssentialsChat 会将前缀和后缀添加到个人的用户名,以给用户的名称增加标签和颜色。
如果想制作更长的聊天前缀,建议查看我们的聊天格式向导,它展示了如何在聊天中使用长的前缀,但在玩家名的名称里使用短的前缀。
一些例子:
- prefix: '[A]' : 制作一个简单的 <[A]User>
- prefix: '&e' : 制作一个上色的 <User>
保护插件(AntiGrief)
一些插件支持基于“AntiGrief”的保护。就像聊天颜色功能一样,GroupManager 并不提供这项功能,而是像 EssentialsProtect 这样的插件才会提供。
build状态往往像这样:
- build: false 禁用方块的建筑/破坏。
- build: true 启用方块的建筑/破坏。
【Plugin Wiki 出品】
插件迁移
一般地从大部分权限插件迁移到 Group Manager 是一个比较容易的事情。请先尝试下面的步骤,但是如果无法运行,手动地构建用户组也是比较容易的。
- 移动 EssentialsGroupManager.jar 或 GroupManager.jar 到你的 plugins 目录里。
- 从你的 plugins 目录移除先前的权限插件的 jar 文件。
- 复制先前的用户组文件。
- 打开 Group Manager 文件夹然后定位到世界文件夹(plugins/worlds/<你的世界名称>)。
- 将两个权限配置文件粘贴到此处。
- 将一个重命名为 users.yml,另一个重命名为 groups.yml,覆盖所有存在的文件。
- 重启服务器。
【Plugin Wiki 出品】
Group Manager命令
有大量和 Group Manager 插件有关的命令,可以用于在游戏中和控制台上为玩家修改和分配用户组。
基础用户命令
这些命令在已经建立好一个用户组,且仅想将用户分配到用户组时十分有用。
- /manuadd: 移动用户到希望的用户组。(如果不存在的话会添加用户组到文件)
- /<命令> <玩家> <用户组>
- 权限名:groupmanager.manuadd
- /manudel: 移除所有此用户特定的配置。使他进入默认用户组。
- /<命令> <玩家>
- 权限名:groupmanager.manudel
- /manpromote: 允许在继承树中向上提升一个玩家。这个命令只会允许用户在相互继承的用户组之间移动。
- /<命令> <玩家> <用户组>
- 权限名:groupmanager.manpromote
- /mandemote: 允许在继承树中向下降级一个玩家。这个命令只会允许用户在相互继承的用户组之间移动。
- /<命令> <玩家> <用户组>
- 权限名:groupmanager.mandemote
- /manwhois: 获得用户处在的用户组。
- /<命令> <玩家>
- 权限名:groupmanager.manwhois