本帖最后由 cc7w 于 2020-2-9 19:59 编辑


本插件需要Java8才能工作
欢迎阅读插件Wiki:
贡献者 @海螺螺 @cc7w @INKDRRAK

链接支持


插件介绍

LuckPerms 是一款快速、可靠、灵活、进阶权限管理插件
这款插件的主要优势是有高效率和很多特性,它可以填补其他权限插件的不足之处

并且它与其他权限插件的基础特性基本相同,易上手
LuckPerms 插件同样对开发者也提供了广泛的API,并且支持众多Minecraft软件和数据储存方式。
数据迁移

LuckPerms 插件支持自动从已安装的权限插件中迁移数据。
当前插件支持从以下插件中迁移数据——
  • GroupManager
  • zPermissions
  • PermissionsEx
  • PowerfulPerms
  • BungeePerms
  • bPermissions
要想了解更多此项功能,请阅读插件维基页面
插件联动

WorldGuard 区域:
大多数权限插件提供在某些WorldGuard区域的权限。
我个人感觉提供这种支持不属于本插件的范围,并且最好用一个附属插件分离。
就如上所说,作者写了一个附属插件,ConditionalPerms 来填补这个漏洞。
它不仅支持 WorldGuard 区域,也支持许多其他插件。
这包括 Factions 、 Towny 、  PlotSquared, 、 CombatTagPlus 和 PlaceholderAPI。
我认为这是一个更好的方法。

聊天支持:
LuckPerms 支持设置前缀或后缀,然而它们不会被添加到你的聊天。

你需要安装一款兼容 Vault 的聊天管理插件来使用 LuckPerms 插件中的数据并使用聊天前缀后缀。
(我建议 EssentialsX)
命令权限


命令总览


权限

全汉化地址
https://github.com/PluginsCDTribe/LuckPerms/wiki/Command-Usage
配置(完全汉化)




常见问题

我使用 EssentialsChat ,但不正常工作
请确保你在使用最新版的 EssentialsX 并且安装了 Vault。EssentialsX 的 X 很重要,本插件不兼容旧版本Ess。
该怎么安装 LuckPerms 呢?
如果你在运行很多的服务器,你应该将 LuckPerms 放入每个服务器的 plugins 文件夹。
如果你想使用 BungeeCord 来应用权限,你需要将 LuckPermsBungee.jar 放入 BungeeCord 插件文件夹。
如果你选择只在 BungeeCord 安装 LuckPerms,他将不会影响任何 Spigot/Sponge 服务器的权限检查,如果你想要使用 LuckPerms,你必须将 LuckPerms 安装在这些服务器。
我可以只在 BungeeCord 安装 LuckPerms 吗?
在 BungeeCord 上的权限系统是完全独立于 Spigot/Sponge 服务器的。
如果你想让 Spigot/Sponge 的权限检查被 LuckPerms 处理的话,在每个 Spigot/Sponge 服务器都安装 LuckPerms。
如果你想让 BungeeCord 服务器的权限检查被 LuckPerms 处理,在 BungeeCord 服务器安装 LuckPerms。
你可以只在 BungeeCord 安装 LuckPerms,但是 Spigot/Sponge 服务器的权限检查将不会被 LuckPerms 处理。
我应该怎样在多个服务器中同步权限呢?
将每个 LuckPerms 连接到同一个 MySQL/MongoDB 服务器,你可以使用 /luckperms sync 来从数据库获得最后的权限更新。你也可以 建立一个通讯服务 来立刻在你的服务器之间同步更改。
LuckPerms 不能连接到 Redis 服务器
检查以下是否正常:
  • 你正在使用正确的地址和端口
  • 你的密码是正确的
  • 没有防火墙规则阻拦了连接
  • Redis 服务器正在运行
LuckPerms 不能连接到 MySQL 服务器
检查以下是否正常:
  • 你正在使用正确的地址和端口
  • 你使用了正确的用户名 / 密码
  • 数据库存在并且用户可以访问
  • 该服务器在线并且接受连接
  • 没有防火墙规则阻拦了连接
  • MySQL 正确绑定了端口,并且安装 LuckPerms 的服务器可以访问

检查 MySQL 的连接限制没有超过,默认 LuckPerms 会使用 10 个连接,如果你有过多的插件连接了同一个服务器,你需要增加这个限制。
如果你得到了 Communications link failure 的错误,或者由于超时导致的错误,那么上面的有一条是不正常的。
给玩家 LuckPerms 表的权限,使用
GRANT ALL PRIVILEGES ON [databasename].* TO '[username]'@'[ipaddress]';
记得替换 [ ] 里的东西。
比如:
GRANT ALL PRIVILEGES ON luckperms.* TO 'luck'@'%';
接着当你完成这个更改后,使用
FLUSH PRIVILEGES;




设置玩家的前缀后缀与元数据

引子

这教程包括如何使用LuckPerms插件设置和管理玩家的前缀,后缀以及元数据。
如果你已经对这些概念很熟悉了,或是只想查看本插件如何实现更改,你应该阅读命令使用 页面的 “section” 小节。

关键术语
前缀/后缀
Minecraft服务器上的前缀和后缀代指你聊天用户名前后的文本。
举个例子,在下列的聊天中:
[Admin] Luck the great: Hello!
玩家的前缀是"[Admin] "部分,玩家的后缀是" the great"部分。

元数据
有时元数据指“选项”或“变量”,元数据是跟权限组有关的额外数据部分。与权限不同的是,元数据分成两部分,一部分是“关键字”,另一部分是“值”。
关键字就是元数据的名字,值就是关键字所代表的数据。
举个例子,我的用户有下列的元数据,这元数据代表我最多能设置5个家,然后我的用户名应该是蓝色的。
max-homes = 5
username-color: blue

是谁提供了对这些的支持?
一般来说,提供服务器管理权限的插件就有能够让你设置,管理和储存玩家的前缀,后缀和元数据的功能,这对于LuckPerms插件来说也一样。
有时,提供这些设置的权限插件也能够直接在游戏中应用这些值。但是这对于LuckPerms来说不是它能做到的任务,你需要安装另一款额外的插件来在游戏聊天中应用,关于这点我们稍后详述。

前缀/后缀/元数据是怎么存储的
LuckPerms 插件将前缀和后缀转换成权限节点来存储。你可能会注意到当你给一位用户或一个权限组添加权限的恶化,他们的权限信息中会多出一条跟你设置的值相同的权限数据。为什么要这样做呢?好的,从编程的角度来说,让所有东西都储存在一个地方,用相同的格式,这样做更简单。这也意味着你能够简单的更改前缀和后缀,就像你改权限的方式一样。
前缀和后缀分成了两部分
Weight —— 这是决定着前缀和后缀优先级的数值,较大的数代表着较大的优先级。
Value —— 这是真正的前缀的值。
例如一个叫做 "[Admin] " 的前缀,优先级设置为100,转换成权限就是: "prefix.100.[Admin] "。
对于元数据来说所使用的系统也相似,元数据组合 favourite-color = red ,转换成权限就是:"meta.favourite-color.red".

前缀和后缀的优先级是怎么工作的
前缀和后缀和权限一样,也能够继承。这意味着LuckPerms插件需要决定,当需要显示前缀或后缀时,真正为玩家显示哪一个。
当另外一款插件请求玩家的前缀或后缀时,LuckPerms插件会:
  • 收集玩家的所有前缀与后缀,包括继承的
  • 根据他们的优先级来进行分类,高的优先级数值代表高的优先级
  • 然后决定出最高优先级的前缀或后缀来为玩家展示
  • 如果发现了两个相同优先级的前缀或后缀的话,最接近于用户的那一个会被使用,接近的意思就是插件在搜索继承数据时最先找到的那一个。

怎么为玩家设置前缀或后缀
举个例子,如果我想让admin权限组的玩家拥有 "&c[Admin] " 前缀,在mod权限组的玩家拥有 "&d[Mod] " 前缀的话,我需要运行:
  • /lp creategroup admin
  • /lp creategroup mod
  • /lp group admin parent add mod
  • /lp group admin meta addprefix 100 "&c[Admin] "
  • /lp group mod meta addprefix 90 "&d[Mod] "
然后如果我决定想要将admin用户组的称号改为使用 "&4" 这个颜色代码的话,要想删除之前设定的值,我需要运行:
/lp group admin meta removeprefix 100
这会将所有设定给admin权限组的,优先级为100的前缀全部移除,然后我就能重新设置新的前缀值了。
对于临时设定用户前缀或后缀的方法和增加临时权限或临时权限组的方法差不多。
所有的权限使用方法可以在权限使用页面找到。增加和移除元数据的方法也列在了那里。

怎么查看一位玩家或一个用户组所有的前缀或后缀
解决前缀或后缀相关问题最简单的方式就是使用info命令。
举个例子: /lp user Luck meta info。这会将用户所有的前缀,后缀和元数据,以及继承的相关信息列举出来。
按照优先级来排序,所以你就能很清楚的看到目前应用的值是哪一个。
另外一条有趣的命令就是玩家的全局信息命令: /lp user Luck info。
如果玩家在服务器上在线的话,这会直接给你展示所提供给要读取LuckPerms信息的插件的前缀或后缀。

展示前缀和后缀
就像早些时候提到的那样,LuckPerms插件不会为你处理任何的聊天格式相关信息。
你需要安装额外的插件来做到这个。
下面为你列出了一些推荐的聊天管理插件。

Bukkit/Spigot
LuckPerms 目前已经支持所有能够从 Vault 插件读取信息的聊天管理插件了。
你需要在你的服务器上安装Vault来让其工作。
如果你发现某款插件所获取的数据不正确的话,请确保 /vault-info 插件输出的信息展示的数据是从LuckPerms插件处读取的。
一些较为受欢迎的,且支持Vault的聊天管理插件包括:
  • EssentialsXChat —— 原来的Essentials插件的升级复刻版本。(“X” 是很重要的!)
  • ChatEx
  • DeluxeChat —— 你能够使用Vault或LuckPerms所提供的Placeholder变量。
  • ChatControl —— 也支持其他选项的设置来帮助管理聊天。
  • 列举出所有可用的插件没有任何意义,再说一遍,所有支持Vault的聊天管理插件都支持LuckPerms!

BungeeCord
  • gChat
  • MultiChat
  • BungeeChat

Sponge


  • Nucleus —— 就像是“Essentials”一样的插件,包括 聊天管理模块.