Greensky
本帖最后由 Greensky 于 2022-10-11 14:52 编辑

前言

GroupManager 是一款用于控制权限的插件,曾是 Essentials 的附加插件,安装 Essentials 的服务器基本上都在使用。其功能强大,使用方便,但是对于大部分服主朋友们来说,也许仅知道其最基础的为玩家添加权限功能。此教程意在帮助大家更详细地了解此插件。

教程内容主要基于我对 Essentials wiki GroupManager 条目的翻译,也加入了一些自己想法和见解。毕竟只能算是英语初学者,翻译中可能有部分翻译错误或不通顺内容,各位可在插件百科上对此教程条目进行更改。
插件百科上此教程条目地址:
http://mineplugin.org/GroupManager
Essentials wiki 上 Group Manager 教程原文地址:
http://wiki.mc-ess.net/wiki/Group_Manager
Group Manager 下载地址:
https://www.spigotmc.org/resources/groupmanager.38875/
原文版权归属于 Essentials 团队与 GroupManager 开发者 ElgarL,本翻译内容根据 CC BY-SA 3.0 协议发布,引用或转载注明出处便可。
本文由 Plugin Wiki 出品,由本人完成教程主体翻译,Lucky777777 完成教程检查修改。
在此感谢 john180 帮助检查,航空兔子 提供建议。

译名表
我的翻译使用的译名可能和大家的理解有所不同,阅读时如有不理解可以参考此译名表。

概念解释
我的翻译使用的概念大家可能难以理解,可以参考此概念解释。

FAQ[完善中](2014-8-28 加入)
关于 GroupManager 的常见问题,可以在这里找到答案,参考前请先熟悉 GroupManager 各项功能以便了解答案的原理。



  
目录
      

最后更新:2020-6-27

注:GroupManager 原作者 ElgarL 近期(2020-6-27)宣布重启 GroupManager 更新,现已发布版本 v2.2。本条目也将随其更新。

【Plugin Wiki 出品】

来自群组: Minecraft插件百科

Greensky
本帖最后由 Greensky 于 2020-6-27 21:58 编辑

Group Manager
Group Manager(有时简称 GM)是一款用于控制权限的插件。它允许你为用户组设立权限,并将玩家添加到这些用户组,便可以有拥有允许使用特定权限的多个等级。创建一个自定义的等级系统,对于大部分 Minecraft 服务器来说是非常有用的。没有它,设置服务器限制玩家的程度是比较困难的。
Group Manager 是作为一个独立的组件,而且当前不是可用的 BukkitDev 批准项目。
请参见 Group Manager/配置GroupManager/命令Group Manager/开发者 条目。
视频教程涉及这个教程的一小部分。——其中有一些次要的、过时的、不准确的内容。所以当这个教程和视频不符时,请以这个教程的内容为准。

【Plugin Wiki 出品】

  
目录
   
  • 1 基本思路
  • 2 初始安装
    • 2.1 配置文件
  • 3 权限
    • 3.1 权限节点
    • 3.2 概要节点(通配符“*”)
    • 3.3 否定节点
    • 3.4 例外节点
    • 3.5 权限范例
  • 4 变量
    • 4.1 聊天插件
    • 4.2 保护插件(AntiGrief)
  • 5 插件迁移
  • 6 Group Manager 命令
    • 6.1 基础用户指令
  

【Plugin Wiki 出品】

基本思路
Group Manager 允许通过尽可能多地创建需要的用户组和副用户组,有效地管理用户的权限。配置可以非常简单,或是如需要的那样复杂。
最传统的权限系统(如下)使用了组继承,从最上方的新人(Newbie)用户组开始,一直到最下方的服主(Owner)。在小型服务器上可以合并协管员(Moderator)和管理员用户组,但大多数人会在管理员和协管员获得的权限上有不同的想法。

【Plugin Wiki 出品】

初始安装
Group Manager 的安装非常容易:
配置文件
请参见:Group Manager/配置
第一次下载 Group Manager 时,一般只有 .jar 文件。在第一次运行 Group Manager 时,它会生成可以编辑的配置文件。
标准的配置和范例里详细的布局很相似,但在使用之前至少需要更改一点,需要将自己加入管理员。
第一次生成的配置文件时的文件目录结构会看起来像这样:


  1. plugins/
  2.     GroupManager/
  3.         config.yml
  4.         globalgroups.yml
  5.         backups/
  6.         worlds/
  7.             world/
  8.                 groups.yml
  9.                 users.yml
复制代码

配置文件的细节可以在配置页面找到。
【Plugin Wiki 出品】

权限
Group Manager 配置的核心是权限节点,能够准确地控制一个玩家能干什么、不能干什么,是 Group Manager 的重点所在。每一个插件都有各自的权限节点,关联于具体插件的命令。
Essentials 插件在它的命令参考里有一个关于权限完整的列表。至于其他的插件,需要查看和它们有关的文档帮助。
权限节点
每一个支持权限的插件,都会有他们各自的权限节点。
权限节点大致语法:<插件名>.<命令名>
父节点(权限节点前半部分)不一定总是插件的名称,所以请在构建用户组之前先检查。这个特性允许不同的插件拥有相同的指令,但是在指明选定哪个插件的指令为默认后不会互相起冲突。
概要节点(通配符“*”)
Group Manager 支持概要权限,使用通配符允许所有注册的附属的权限
也可以不用指明插件,直接使用“*”通配符本身。这个使指明的用户组拥有权限使用所有插件的所有命令。注意:有冲突的命令会变得不稳定,除非使用否定节点否认。请自行承担风险,也不是所有的插件都正确地注册了它们的权限。
否定节点
Group Manager 支持否定节点,允许收回使用命令的权限。和组继承配合是非常有用的。
在使用大型通配符权限(概要节点)的时候,这个是非常有用的,例如给予一个管理员所有的指令,但移除Group Manager命令的权限部分。将概要节点和否定节点组合在一起,可以轻松地移除许多的附属命令。
例外节点
Group Manager 支持可以覆盖否定节点的例外节点,允许你轻易地恢复命令的权限。这在移除所有命令的权限,并把每个单独地加回来时是有用的。
权限范例
这里有大量的 Group Manager 可用的权限文件范例:
Group 用户组(groups.yml) :: Group Manager 全局用户组(globalgroups.yml)

【Plugin Wiki 出品】

变量
Group Manager 允许像规定权限一样规定变量。每一个用户组的变量都可以有不同的取值。它们往往在基于用户组的插件(如 VIP 插件等)使用。这里有两个主要的例子:"prefix"(前缀)“suffix”(后缀),和“build”开关。
聊天插件
大部分聊天插件,会为了基于用户组给予玩家自定义名称,而读取 prefix(前缀)和 suffix(后缀)取值。
EssentialsChat 会将前缀和后缀添加到个人的用户名,以给用户的名称增加标签和颜色。
如果想制作更长的聊天前缀,建议查看我们的聊天格式向导,它展示了如何在聊天中使用长的前缀,但在玩家名的名称里使用短的前缀。
这里可以找到一个关于颜色代码的列表。
一些例子:
保护插件(AntiGrief)
一些插件支持基于“AntiGrief”的保护。就像聊天颜色功能一样,GroupManager 并不提供这项功能,而是像 EssentialsProtect 这样的插件才会提供。
build状态往往像这样:

【Plugin Wiki 出品】

插件迁移
一般地从大部分权限插件迁移到 Group Manager 是一个比较容易的事情。请先尝试下面的步骤,但是如果无法运行,手动地构建用户组也是比较容易的。

【Plugin Wiki 出品】

Group Manager命令
有大量和 Group Manager 插件有关的命令,可以用于在游戏中和控制台上为玩家修改和分配用户组。
请参见:Group Manager/命令
基础用户命令
这些命令在已经建立好一个用户组,且仅想将用户分配到用户组时十分有用。


Greensky
本帖最后由 Greensky 于 2020-6-27 22:29 编辑

Group Manager/配置
这个页面详细说明了 Group Manager 配置文件的默认和基础的配置。
警告:Group Manager 在重新加载(reload)时会覆写它的配置文件,如果做出了手动的更改,请一定使用/manload
请参见:Group Manager
  
目录
  

  
  • 1 安装之后
    • 1.1 config.yml(配置文件)
    • 1.2 镜像
    • 1.3 groups.yml
    • 1.4 users.yml
    • 1.5 globalgroups.yml(全局用户组)
  • 2 权限
    • 2.1 权限范例
  • 3 最低限度配置
  • 4 视频教程
  
安装之后
第一次下载 Group Manager 时,一般只有 .jar 文件。在第一次运行 Group Manager 时,它会生成可以编辑的配置文件。
标准的配置和主页面上的详细的布局很相似,但在使用之前至少需要更改一点,如果除了想要把自己加入管理员之外没有其他需要的话。
第一次生成配置文件时的文件目录结构会看起来像这样:


  1. plugins/
  2.     GroupManager/
  3.         config.yml
  4.         globalgroups.yml
  5.         backups/
  6.         worlds/
  7.             world/
  8.                 groups.yml
  9.                 users.yml
复制代码


config.yml
位于: plugins/GroupManager/config.yml
这个配置文件在你拥有多个世界时使用。它用于从一个单独的世界复制权限到其他的世界。
配置文件看起来像这样:
  1. settings:
  2.   config:
  3.     # 这个启用时任何一个设置成 op 的用户在管理 GroupManager 时拥有全部权限
  4.     # 用户将能够提升玩家到同样或更高的组。
  5.     opOverrides: true
  6.    
  7.     # 'mantogglevalidate' 的默认设置
  8.     # 为 true 值时会使 GroupManager 尝试将名称和默认相配
  9.    validate_toggle: true
  10.     #************************************************************************************************************************************************************
  11.     # ***注意:启用这个功能会允许命令方块不合法的使用,引起不希望的权限改变,警告! ***
  12.     #************************************************************************************************************************************************************
  13.    allow_commandblocks: false
  14.    
  15.   data:
  16.     save:
  17.       # GroupManager 每过多久会保存它的数据到 groups.yml 和 users.yml
  18.       minutes: 10
  19.       # 备份保留的小时数(备份地址:plugins/GroupManager/backup)
  20.       hours: 24
  21.       
  22.   logging:
  23.     # GroupManager 记录的详细程度。
  24.     # 允许的参数是- ALL(全部),CONFIG(配置),FINE(精细),FINER(更精细),FINEST(最精细),INFO(信息),OFF(关闭),SEVERE(严格),WARNING(警告)
  25.     level: INFO
  26.    
  27.   mirrors:
  28.         # 在这里列出世界的设置映射到它们的子世界。
  29.         # 第一个要素‘world'是主世界名称,是父世界。
  30.         # 随后的要素‘world_nether'和'world_the_end'是将使用的世界。
  31.         # 和父世界使用相同的user/group 文件。
  32.         # 要素'all_unnamed_worlds'指定所有没有列出的世界,然后自动地映射它的父世界。
  33.         # 每一个子世界可以设置从它的父文件映射'groups'、‘users',或两个文件都映射。
  34.         world:
  35.          world_nether:
  36.           - users
  37.           - groups
  38.          world_the_end:
  39.           - users
  40.           - groups
  41.          all_unnamed_worlds:
  42.           - users
  43.           - groups
  44.     #  world2:     (world2 会有它自己的用户和组的设置文件)
  45.     #    world3:
  46.     #    - users   (world3 会使用 world2 的 users.yml 文件,但自己拥有 groups.yml 文件)
  47.     #    world4:
  48.     #    - groups  (world4 会使用 world2 的 groups.yml 文件,但拥有自己的 users.yml 文件)
  49.     #  world5:
  50.     #    - world6  (这个会使 world6 从 world5 映射两个文件)
复制代码

镜像
有关取消镜像的教程参看此处。
http://www.mcbbs.net/thread-273672-1-1.html
Lucky777777

这是一个如何在 GM 里使用镜像系统的范例。
  1. # 这是一个范例的 GroupManager 镜像系统。
  2. # 这个会使你接触一些更复杂的 GM 映射。
  3.   mirrors:
  4.         MainWorld:
  5.          MainWorld_nether:
  6.           - users
  7.           - groups
  8.           Hardcore:
  9.           - groups
  10.         Skylands:
  11.          Skylands2:
  12.           - users
  13.           - groups
  14.         Hardcore:
  15.          Hardcore_nether:
  16.           - users
  17.           - groups
  18.          all_unnamed_worlds:
  19.           - users
  20.           - groups

复制代码

在这个范例里将要维护数个配置文件的设置。Skylands 和 Skylands2 将会共享 Skylands 文件夹。MainWorld和 MainWorld_nether 会共享一个文件夹。Hardcore 会使用 MainWorld 的 groups 文件,但会有自己的 users 文件,所有其他的世界会使用 Hardcore 的 user 文件和 Mainworld 的 groups 文件。
group.yml
位于: plugins/GroupManager/worlds/<世界名>/group.yml
这是主要的且最重要的配置文件,是声明将会使用组的地方。范例的文件全部发布在这里有一点过大了,但是它会在第一次启动 GM 时自动生成。
Group Manager 的基础可以总结于这里展示的范例:


  1. groups:
  2.   Default:
  3.     default: true
  4.     permissions:
  5.     - essentials.help
  6.     -essentials.help.*
  7.     --essentials.help.factions
  8.     -essentials.helpop
  9.     -essentials.list
  10.     -essentials.motd
  11.     -essentials.rules
  12.     -essentials.spawn
  13.     -essentials.eco
  14.     inheritance: []
  15.     info:
  16.       prefix:'&e'
  17.       build: false
  18.       suffix: ''
  19.   Builder:
  20.     default: false
  21.     permissions:
  22.     -essentials.home
  23.     - essentials.me
  24.     -essentials.msg
  25.     -essentials.sethome
  26.     -essentials.warp
  27.     inheritance:
  28.     - default
  29.     info:
  30.       prefix:'&2'
  31.       build: true
  32.       suffix: ''
复制代码

这个范例有几个值得注意并指出、对于大多数服务器有用的特性:
默认配置有更多像这样有一系列权限的用户组,并使用名叫全体用户组(grobalgroups)的功能。这个可以使多世界配置更加容易,详情参见下方。
user.yml
位于: plugins/GroupManager/worlds/<worldname>/user.yml
这里是规定用户进入什么组的地方。确定将自己加入这个配置,以拥有在游戏中管理权限的允许。大部分人很少直接编辑此文件,因为使用游戏中命令会更加容易。
配置文件看起来像这样:
  1. users:
  2.   kimkandor:
  3.     subgroups: []
  4.     permissions:
  5.     -essentials.heal
  6.     group: Default
  7.   zenexer:
  8.     subgroups: []
  9.     permissions: []
  10.     group: Mod
  11.   khobbits:
  12.     subgroups: []
  13.     permissions: []
  14.     group: Admin
复制代码

这个范例有几个值得注意并指出、对于大多数服务器有用的特性:
globalgroups.yml(全局用户组)
位于: plugins/GroupManager/globalgroups.yml
这个文件用于制作自定义的权限设置。在这个文件里的用户组永远不会直接地给予一个用户,只会简单地加入一个真实用户组的继承。
全局(grobal)用户组的重点,是使管理多个世界时更加容易,不需要从每个世界复制权限。每次做出了一个更改,可以简单地制作一个全局 'mod' 组,并在那里列出你的 mod 权限。以那种方法,只需要简单地在每一个世界的 mod 用户组继承里加入 'g:mod',mod 用户组就会从全体用户组文件获得所有此条权限。
全局用户组文件的使用通常是可选择的。可以从此文件删除出大部分用户组,并将权限移动到group.yml。这些都是基于个人的偏爱,最主要的是,如果重命名或移动了任何全局用户组里的用户组,确定也在每个世界的继承里更新名称。
权限
请参见: Group Manager

Group Manager 配置的核心是权限节点,能够准确地控制一个玩家能干什么、不能干什么,是GM的重点所在。每一个插件都有各自的权限节点,关联于具体的插件的命令。
Essentials插件在它的命令参考里有一个关于权限的完整的列表。至于其他的插件,你需要查看它们有关的文档帮助。关于权限的更多细节,例如概要节点,可以在 Group Manager 页面找到。
权限范例
这里有大量 GroupManager 可用的范例权限文件。
GroupManager 用户组 :: GroupManager 全体用户组
最简配置
运行服务器需要的最简单最基础配置文件是什么,这个问题以前被提到过。接下来的配置是我们可以推荐的最基础的配置,对于大多数服务器来说,并不会允许足够的管理或给用户提供足够的命令。
  1. groups:
  2.   Default:
  3.     default: true
  4.     permissions:
  5.     -essentials.help
  6.     -essentials.list
  7.     -essentials.motd
  8.     -essentials.rules
  9.     info:
  10.       prefix:'&5'
  11.       build: true
  12.       suffix: ''
  13.   Admin:
  14.     default: false
  15.     permissions:
  16.     - '*'
  17.     inheritance:
  18.     - default
  19.     info:
  20.       prefix:'&4'
  21.       build: true
  22.       suffix: ''

复制代码

视频教程
http://www.youtube.com/watch?v=06mqvMuSmHU&feature=player_embedded
http://www.youtube.com/watch?feature=player_embedded&v=Rurjwv91_dU


下一页 最后一页