- 欢迎来到Minecraft插件百科!
- 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
- 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289
LuckPerms:修订间差异
无编辑摘要 |
无编辑摘要 |
||
第534行: | 第534行: | ||
请注意配置文件不能在有新配置的时候自动添加,如果文件中没有找到任何东西,我们将使用默认选项。 | 请注意配置文件不能在有新配置的时候自动添加,如果文件中没有找到任何东西,我们将使用默认选项。 | ||
== 索引 == | === 索引 === | ||
=== 基础 === | ==== 基础 ==== | ||
* [[#server|<code>server</code>]] | * [[#server|<code>server</code>]] | ||
第548行: | 第548行: | ||
* [[#group-name-rewrite|<code>group-name-rewrite</code>]] | * [[#group-name-rewrite|<code>group-name-rewrite</code>]] | ||
* [[#temporary-add-behaviour|<code>temporary-add-behaviour</code>]] | * [[#temporary-add-behaviour|<code>temporary-add-behaviour</code>]] | ||
* [[#primary-group-calculation|<code>primary-group-calculation</code>]] | * [[#primary-group-calculation|<code>primary-group-calculation</code>]] | ||
==== 权限计算==== | |||
* [[#apply-wildcards|<code>apply-wildcards</code>]] | * [[#apply-wildcards|<code>apply-wildcards</code>]] | ||
* [[#apply-regex|<code>apply-regex</code>]] | * [[#apply-regex|<code>apply-regex</code>]] | ||
* [[#apply-shorthand|<code>apply-shorthand</code>]] | * [[#apply-shorthand|<code>apply-shorthand</code>]] ===== Bukkit===== | ||
* [[#apply-bukkit-child-permissions|<code>apply-bukkit-child-permissions</code>]] | * [[#apply-bukkit-child-permissions|<code>apply-bukkit-child-permissions</code>]] | ||
* [[#apply-bukkit-default-permissions|<code>apply-bukkit-default-permissions</code>]] | * [[#apply-bukkit-default-permissions|<code>apply-bukkit-default-permissions</code>]] | ||
* [[#apply-bukkit-attachment-permissions|<code>apply-bukkit-attachment-permissions</code>]] | * [[#apply-bukkit-attachment-permissions|<code>apply-bukkit-attachment-permissions</code>]] ===== Bungee===== | ||
* [[#apply-bungee-config-permissions|<code>apply-bungee-config-permissions</code>]] | * [[#apply-bungee-config-permissions|<code>apply-bungee-config-permissions</code>]] ===== Sponge===== | ||
* [[#apply-sponge-implicit-wildcards|<code>apply-sponge-implicit-wildcards</code>]] | * [[#apply-sponge-implicit-wildcards|<code>apply-sponge-implicit-wildcards</code>]] | ||
* [[#apply-sponge-default-subjects|<code>apply-sponge-default-subjects</code>]] | * [[#apply-sponge-default-subjects|<code>apply-sponge-default-subjects</code>]] ==== 服务器管理员 / Vault (仅 Bukkit 版本)==== | ||
* [[#enable-ops|<code>enable-ops</code>]] | * [[#enable-ops|<code>enable-ops</code>]] | ||
* [[#auto-op|<code>auto-op</code>]] | * [[#auto-op|<code>auto-op</code>]] | ||
第580行: | 第581行: | ||
==== <code>server</code> ==== | ==== <code>server</code> ==== | ||
第734行: | 第734行: | ||
----- | ----- | ||
== 权限计算 == | === 权限计算 === | ||
第860行: | 第860行: | ||
<pre class="hocon">apply-sponge-default-subjects=true</pre> | <pre class="hocon">apply-sponge-default-subjects=true</pre> | ||
== Server Operator / Vault (Bukkit version only) == | === Server Operator / Vault (Bukkit version only) === | ||
第960行: | 第960行: | ||
<pre class="yaml">vault-debug: false</pre> | <pre class="yaml">vault-debug: false</pre> | ||
== Storage == | === Storage === | ||
2017年8月8日 (二) 10:12的版本
欢迎来到 LuckPerms wiki。这里你将会找到本插件的完整的使用文档,包括了安装、设置、配置和如何高效的使用 LuckPerms。
从何开始?
如果您从未使用过任意权限插件,我推荐你从头开始看。
基础都在[使用教程]页面。
完整的命令使用在[命令使用]页面。
什么也没找到?
如果你有更多的问题是这篇Wiki没有解决的,你可以通过以下几种方式联系我。
- [Discord 服务器] (就算我不在,也有很多人帮助你!)
- 在 irc.esper.net 我是 "Luck",我也在 irc.spi.gt 和 chat.freenode.net
- 在 SpigotMC 和 Sponge 论坛我是 "Luck"
- 在[GitHub]提交一个 issue (如果你要提交一个BUG,这是最好的方式)
一些有用的链接
为什么选择LuckPerms?
这是另外一款全新的权限插件?
是的,我认为LuckPerm相比其他权限插件还有很大的发展空间。
LuckPerm是一款先进、高等的权限插件,仅仅以快速、稳定可靠、灵活多变的特点,
便可以替代现有的许多权限插件,例如PermissionsEX、GroupManagerX、z/bPermissions、BungeePerms等主流权限插件。
LuckPerms这个插件的计划,本来是围绕着两个主要特点来制作的:高性能、强大且广泛的功能,
填补其他同类插件的功能缺陷、并且建立在同类现有功能上更进一步的优化功能。
LuckPerms还包括了非常广泛的API支持,这是为开发人员的添加的,
并且,luckperms还兼容各式各类Minecraft服务器软件&支持多种数据存储的选择。
我已经使用某插件很长一段时间了,它对我的帮助很大,我也很熟悉它了,为什么我要更换它而选择LuckPerm呢?
现在主流的权限插件大多数都是老牌插件了,并且都是在Bukkit早期就被创造出来了。
虽然,这可能意味着它们非常的稳定可靠,但通常也意味着它们被原作者抛弃,并且一般不会再有任何更新、修复,
但LuckPerm却任然是一个需要成长、需要磨砺的插件!
我会尽力及时查看并回复所有的bug报告、问题,以及可实现的新功能建议
你说的不错,但是我更加偏爱某插件,因为仅凭它就完成了我需要的一切
这没关系,我完全理解你的这种心态,我并不是想要说你**必须**用LuckPerm来作为你服务器的权限插件。
当然还有更多适合你服务器权限插件,但是LuckPerm确实是个很棒的选择,不是么?
来吧兄弟,告诉我,我为什么要使用LuckPerm?
LuckPerm能做很多事情,至少单在技术层面,LuckPerm就胜过大部分同类插件。
我认为这不取决于我制作插件的水平,而是取决于我在LuckPerm上面花费的精力与时间。
LuckPerm是我在2016年开始准备编写的插件,但因为Bukkit变得流行起来,许多同一时期的插件都变成了老牌稳定插件,
不过,这也为我编写LuckPerm提供的很好的参考帮助,因为我可以避免其它同类插件的缺陷,
并且明白它们哪些地方做的特别出色,我可以在其基础之上进一步优化,使那部分功能变得更加引人瞩目。
记着,如果你对LuckPerm技术性方面的内容感兴趣,我推荐你从[命令使用]部分开始阅读
或者看看wiki列出的其他部分内容,在本节的其余部分,我会将阅读重点放到LuckPerm一些全新的特色功能上面。
这些内容是你不太可能从其他插件中找到的,专属luckPerm的特色功能!
Verbose(权限查看系统)
LuckPerm有一套完整的权限查看系统,是的,它叫做[verbose]。
他可以实时监视并检测其他插件所需的权限,就像下面示例的动态图那样:【图片过大 请去wiki页面查看】
你也可以把录像上传到网上,方便查看、分析和阅读:
权限树系统
LuckPerm允许你在服务器所有已知权限上建立编写"权限树"。
权限树上的数据是由你所有的插件在服务器注册的权限构成的。
随着你服务器运营时间的增长,因为服务器添加了许多插件,它们都会注册权限,这些数据都会被纳入权限树中。
这是个清真的例子 [https://git.io/vQiti]。 你看到的权限树的颜色,代表了你的玩家是否拥有对应的权限,这一机制很方便的让你查阅到服务器的相应权限。
这还是那个清真的例子 [[1]]
指令界面&TAB补全
LuckPerm的指令系统被我设计的尽可能便捷、易用、人性化,
这样一来,你除了查阅LuckPerm的[大量相关帮助文档],还可以在游戏中查看指令用法、以及指令列表。
LuckPerm的所有指令皆可使用TAB补全功能,这就意味着,你可以通过输入更少的指令来完成你的工作!
这是不是在一定程度极大地提高了你的工作效率呢?就像下面那样:
网站编辑器
除了使用指令来编辑服务器权限相关,LuckPerm还提供了更加便捷的编辑方式,
你可以使用Web网站编辑器来对服务器的权限数据进行快速更改,
任何人都能够使用网站编辑器,不论你使用了哪种存储方式!
网站编辑功能非常容易使用,且易于上手
【图片过大 请去wiki页面查看】
行为记录仪
为了防止服务器中出现心存不轨的管理员,想要私自给自己添加权限,
LuckPerm详细的记录了服务器各类权限的微小变化,
你可以通过行为记录仪来搜索每个人的详细操作。
你也可以查看所有东西的详细历史。
安装
安装
初始设置
1. 下载适合你平台的 `LuckPerms-???-x.x.x.jar` 文件。你可以点这里查看最新的版本。
2. 打开你的 Mod 或插件所在路径,这路径通常要么是 `/server/plugins/` ,要么是 `/server/mods/`。
然后把 LuckPerms 的 jar 文件放入文件夹中。
3. 请完全关闭你的服务器,然后再打开,这会生成默认配置。
4. 完全关闭你的服务器,打开配置文件。配置文件的位置在 `/plugins/LuckPerms/config.yml` 或 `/config/luckperms/luckperms.conf`。
5. 请浏览配置文件,然后根据你的服务器修改设置,尤其是请注意存储相关设置。
6. 再次开启你的服务器。
你可以更改配置文件中的很多内容,文件有很细节化的注释,每个设置的作用注释中都解释的很清楚。
需求
LuckPerms 插件只有一个环境需求。
- Java 8
没错,唯一需求就是你必须使用 Java 8,LuckPerms 插件在旧版本的Java上不会工作。
到目前为止很多服务器提供商都已经升级到Java 8了,但是如果你的服务器提供商没有升级的话,请温和地和他们谈谈,让他们去升级。
如果你是自己租主机开服的话,你应该对你还没有升级Java感到羞愧!
升级的过程是很简单的,如果你想升级的话网上也有大量的教程。
使用过期的软件肯定不是好的:)
Bukkit版本过旧
如果你收到了类似于 "NoSuchMethod" 或 "ClassNotFound" 这类错误的话,十有八九就是你在使用较旧的Bukkit版本。
在将它作为错误报告给我之前,请尝试使用"Development Builds"(构建版本)下载页面的"Bukkit-Legacy"(Bukkit-旧版)版本。
切换存储类型
LuckPerms 插件所使用的默认数据存储类型是 H2 数据库。
所有的数据都会储存在LuckPerms插件目录下的 `luckperms.db.mv.db` 文件之中。
(插件目录为 `/plugins/LuckPerms/` 或 `/luckperms/`)
这个数据格式普通的文本编辑器是**不能读取**的。
如果你想要手动阅读/编辑LuckPerms插件的数据的话,你就需要切换到**YAML或JSON**存储格式,更改 `config.yml` 文件中的配置选项就好了。
更多相关于存储类型的有关信息请阅读[下一节]
选择存储类型
LuckPerms 插件带有很多存储数据的方式,你可以从中选择。
存储类型选项可以在 `config.yml` 或 `luckperms.conf` 文件中修改。
# Which storage method the plugin should use. # Currently supported: mysql, postgresql, sqlite, h2, json, yaml, mongodb # Fill out connection info below if you're using MySQL, PostgreSQL or MongoDB storage-method: h2
请记住如果你想改变存储类型的话,你的数据不会自动转移到新的存储库中。
要想手动在数据存储方式间转移数据的话,请查看这里来获得更多信息。
可用的选项都列在了下面。
H2 / SQLite
默认的存储类型是 H2。
这两种文件类型都是以SQL数据库为基础的。
所有的数据都会存储在LuckPerms插件目录下的一个文件之中。
和YAML和JSON方式的不同之处在于,这个文件不能用文本编辑器打开。
你必须使用插件提供的命令才能编辑或查看数据。
如果你选择使用 H2 数据库的话(默认设置),所有的数据都会储存在 `luckperms-h2.mv.db` 文件中。
SQLite 类型所提供的存储文件是 `luckperms-sqlite.db`。
要想使用这两种类型中的一种,请将配置设置为:
storage-method: h2 # or storage-method: sqlite
JSON / YAML
JSON 和 YAML 存储类型会将数据存储在可读可编辑的文本文件中。YAML 类型所提供的文件扩展名为 `.yml` ,JSON类型所提供的文件扩展名为 `.json`。
这两种类型的存储格式很相似,只是在一些句法上不同。
示例 YAML 文件
uuid: c1d60c50-70b5-4722-8057-87767557e50d name: Luck primary-group: default permissions: - group.default: value: true - test.permission: value: true server: factions - other.test.permission: value: false
示例 JSON 文件
{ "uuid": "c1d60c50-70b5-4722-8057-87767557e50d", "name": "Luck", "primaryGroup": "default", "permissions": [ { "group.default": { "value": true } }, { "test.permission": { "value": true, "server": "factions" } }, { "other.test.permission": { "value": false, "server": "test" } } ] }
要想使用这两种类型中的一种,请将配置设置为:
storage-method: yaml # or storage-method: json
MySQL / PostgreSQL
储存在 MySQL 类型和 PostgreSQL 类型中的数据格式上与上文提及的 H2/SQLite 类型相同,但是数据是储存在远程服务器上的。
这意味着你可以跨服分享相同的数据。
你需要在配置文件中输入你数据库服务器的地址,端口,数据库名,用户名和密码。
这种类型推荐要存储大量数据的用户,或是想要搭建群组服务器的用户所使用。
如果你已经在运行群组服务器,并且想要在子服务器之间同步数据的话,你就必须选择这种类型了。
格式布局示例在这里。
要想使用这两种选项中的一种,请将配置设置为:
storage-method: mysql # or storage-method: postgresql
MongoDB
LuckPerms 也支持 MongoDB 类型的存储,它也是一种远程数据库,在有些方面上和 MySQL 相似。
这种类型也只会被一小部分的用户所使用。
要想使用这种类型的存储,请将配置设置为:
storage-method: mongodb
使用教程
这篇教程是为之前从来没有使用过权限管理插件的人所准备的。
如果你已经很熟悉权限管理等相关概念了的话,我认为你应该就能够理解命令中的东西了。
这样我就推荐你去阅读命令和权限页面,这样更加“直奔主题”,你也能够更容易理解插件的工作方法。
如果你正在努力想弄明白权限管理相关概念的话,这篇教程就是你起步的最佳地方:)
关键术语
权限
在你的服务器上会有大量的**特性,命令和一些新功能**。
这其中的一些特性是服务器自带的,另一些是由“插件”所添加的。
与这些特性相联系的大多数行为都是由权限所控制的,因此你可以控制哪些用户可以使用你指定的特性或权限。
- 权限仅仅是个字符串**,并且使用英文的句号(半角 → . ←)分成几部分。
举个例子, “minecraft.command.ban” 就是原版 /ban 命令所使用的权限。
显然我们不想让所有用户都能执行这个命令,所以我们只给我们信任的玩家这个权限。
代表特定行为的使用许可的字符串,我们就称之为权限,它又名“权限节点”,简称“权限”。
权限组
代替单独为每个用户设置权限,我们可以将**权限捆绑为一组**,然后直接将这一组**给予玩家**。
举个例子,在我设置的“admin”权限组中,我可能会添加使用ban和unban指令的权限,然后将玩家加入admin权限组中。
这意味着他们能够获得“admin”权限组所设置的所有权限和他们自身被设置的权限。
继承
用户和权限组能够**互相继承权限**。
举个例子,默认地,所有的用户都会从“default”权限组继承权限。
你可以为你自己的服务器设置你自己的权限组与继承方式,或是制作你自己独特的系统。
举个例子,我设置了三个权限组, “default”, “moderator” 和 “admin”。
我想让“moderator”权限组从“default”权限组继承所有权限,“admin”权限组从“moderator”权限组继承所有权限。
起步
如果你还没有将LuckPerms插件安装在你的服务器上的话,我们推荐你先阅读安装有关的教程。
然后,请确保你在继续之前已经阅读了选择数据存储类型的有关章节。
虽然你在后期也能实现数据之间的转移,但第一次就将他们弄对位置是更好的。
给予修改权限的全部权限
你想做的第一件事情就是给你本插件的所有权限。
当本插件首次安装后,没有人能够使用LuckPerms插件的有关命令。
要想做到这个的话,你需要在服务器控制台输入 `/luckperms user Luck permission set luckperms.* true` 。
当然,请把我的名字换成你自己的(不用担心,这条命令的使用方法之后会详细讲解)
这应该就是运行的结果:
实际上,这条命令起的效果,就是给了 `Luck` 用户 `luckperms.*` 权限。(或者说,为用户设置权限为 true)
你可能已经注意到了我们刚才在权限字符串的末端使用的 `*` 字符了。
这个字符叫做通配符,它会给玩家**所有**以 "luckperms" 为开头的权限。
创建第一个权限组
我们可以使用创建权限组命令来创建一个新的权限组。
让我们创建一个叫做“admin”的权限组,然后给它附加一条权限吧。
首先,运行 `/luckperms creategroup admin` 命令。
这会创建一个叫做“admin”的空权限组。
接下来,我们想为“admin”权限组增加一条权限。
用来修改权限组的命令是 `/luckperms group <group>`。
如果你执行这条命令的话,它会为你显示所有可用的子命令。
你可能注意到了第一个子命令是“info”命令。它只会列举出一些权限组相关的信息。
我们可以运行 `/luckperms group admin info` 来查看新建立的“admin”权限组的一些信息。
接下来就是“permission”命令。这能够帮助你修改权限组的权限。
再一次,使用 `/luckperms group admin permission` 命令会列出所有可用的子命令。
再一次,我们看到了更多我们可以执行的命令。
第一个就是另一个 "info" 子命令。
因为它是“permission”子命令下的又一子命令,它就会显示某一权限组所拥有的所有权限。
下面的命令是“set”子命令。
你还记得吗,之前我们使用相似的指令来给玩家 "luckperms.*" 权限。这里它也相同
只需要不加参数运行该命令就可以返回该命令的使用方法。举个例子:
举个例子,我想给我的“admin”用户组 "minecraft.command.ban" 权限。
因此我可以输入 `/luckperms group admin permission set minecraft.command.ban true` 。
这条命令就会给予 `admin` 用户组 `minecraft.command.ban permission` 权限。
末端的true控制我们设置的权限的启用与否。
你可以将权限的启用与否设置为 `true` 或 `false` 。
为用户或权限组将权限设置为 true 能够让他们拥有该权限,设置为 false 即该权限无效。(指定他们没有该权限)
如果晚些时候我决定不再让“admin”用户组拥有这个权限了,我可以使用 unset 命令来移除该权限的设定。
输入 `/luckperms group admin permission unset minecraft.command.ban` 。
将玩家加入到权限组中
将用户加入到权限组中需要使用 "parent" 命令。(在我们的命令使用页我们经常用“permission”替换“parent”)
举个例子,把我自己加入“admin”权限组中,我需要使用 `/luckperms user Luck parent add admin` 。
这条命令会将用户 `Luck` 加入到 `admin` 权限组中。
这意味着任何“admin”权限组所拥有的权限我现在也继承下来了。
让一个权限组继承另一个权限组
就像用户能够继承一样,权限组也能够继承另一个权限组。
举个例子,想想下面这种情况的设置方法。(有些权限仅仅是为了演示而编造出来的)
Admin | Mod | Default |
---|---|---|
minecraft.command.ban | minecraft.command.mute | minecraft.command.say |
minecraft.command.pardon | minecraft.command.unmute | minecraft.command.me |
some.cool.admin.perm | some.cool.mod.perm | |
someplugin.vanish | | |
我想让“admin”权限组中的用户拥有“mod”和“default”权限组的权限,同时“mod”权限组中的用户拥有“default”权限组中的权限。要想实现这个的话,我可以设置用户组之间的相互继承。
`/luckperms group admin parent add mod` 命令会让“admin”权限组继承所有“mod”权限组中的权限。
然后要想让“mod”继承“default”,同样的道理,我可以输入 `/luckperms group mod parent add default`。
继承是可递归的,所以这样以后“admin”权限组就不仅仅继承了“mod”权限组,还继承了“default”权限组。
这意味着“admin”权限组中的玩家拥有“mod”**和**“default”两权限组中的权限了。
在“admin”组的一位用户因此拥有 `minecraft.command.ban`,`minecraft.command.mute` *和* `minecraft.command.say` 权限。
移除继承权限组
要想移除权限组间的继承关系只需要输入一个类似的命令就好了。
要想让我自己不再继承“admin”权限组,我只要输入 `/luckperms user Luck parent remove admin` 就好了。
配置
不同平台的 LuckPerms 的配置文件可以在这里找到。
平台 | 位置 |
---|---|
Bukkit/Spigot | /plugins/LuckPerms/config.yml
|
BungeeCord | /plugins/LuckPerms/config.yml
|
Sponge | /config/luckperms/luckperms.conf
|
请注意配置文件不能在有新配置的时候自动添加,如果文件中没有找到任何东西,我们将使用默认选项。
索引
基础
server
include-global
include-global-world
apply-global-groups
apply-global-world-groups
use-server-uuids
log-notify
world-rewrite
group-name-rewrite
temporary-add-behaviour
primary-group-calculation
权限计算
apply-wildcards
apply-regex
apply-shorthand
===== Bukkit=====apply-bukkit-child-permissions
apply-bukkit-default-permissions
apply-bukkit-attachment-permissions
===== Bungee=====apply-bungee-config-permissions
===== Sponge=====apply-sponge-implicit-wildcards
apply-sponge-default-subjects
==== 服务器管理员 / Vault (仅 Bukkit 版本)====enable-ops
auto-op
commands-allow-op
use-vault-server
vault-server
vault-include-global
vault-ignore-world
vault-debug
### 存储storage-method
watch-files
split-storage
data
pool-size
table-prefix
sync-minutes
messaging-service
auto-push-updates
redis
基础
server
服务器的名称,用于制定服务器的权限。
如果设置为 "global" 这个设置将会被忽略,更多关于服务器指定的权限可以在这里找到。
示例
server: global
include-global
这个服务器的玩家是否应该应用他们的全局权限。(没有指定服务器的权限)
如果这个选项被设置为 false,只有指定在此服务器的权限才会被应用。如果上方的 "server" 选项设置为 global,请不要将其设置为 false。更多的有关服务器指定的权限可以在这里找到。
示例
include-global: true
include-global-world
与上方的选项相似,只是这个选项用于世界的设定。如果设置为 false,只有指定了世界的权限才会被应用至玩家。任何没有指定世界的权限都不会被应用。
示例
include-global-world: true
apply-global-groups
这个选项与 "include-global" 选项类似,但是此选项更改了组的继承设定。
当计算玩家的权限时,插件将会给继承树设定范围,递归解析组成员关系。如果这个设置设置为 false,如果一个组没有被应用,那么它的父组都不会被计算,继承查询将会在此终止。
这意味着就算一个玩家没有在一个特定服务器直接继承一个组,如果这个组通过了一个没有指定服务器的组继承,这个组将不会被应用。
举个例子,当设置为 false,使用以下设置:
用户 "Luck" 继承自全局组 "admin",admin 继承自某服务器的 "default" 组。
尽管 Luck 在指定服务器上继承了默认组,它将不会被应用,因为继承查询在 admin 停止。admin 的父组将不被考虑。
示例
apply-global-groups: true
apply-global-world-groups
与上面的选项相似,但是这个选项用于世界的设定。如果设置为 false,只有指定了世界的组才会被分配,给用户解析。任何没有指定世界的组都不会被应用。
示例
apply-global-world-groups: true
use-server-uuids
如果使用服务器的UUID,或者根据之前的连接的用户名来查询,那么这个设定应该使用 true,除非你很确定你在做什么。
一般的,当这个选项设置为 true 时,当玩家登入时,LuckPerms 将会使用服务器提供的用户名/UUID来标识玩家。这个在大多数的服务器都是适用的。
当设置为 false,LuckPerms 将会检查玩家是否曾经在服务器登录过,如果找到了一个玩家,那么之前映射的UUID将会被使用,否则将会回到默认的使用服务器的UUID的方法。
在离线模式(破解版)的服务器,玩家的UUID基于他们的用户名创建。
重要
如果你在运行一个 BungeeCord 服务器,你必须开启 IP forward 设置,这将让服务器使用正确的UUID。
Spigot Sponge. SpongeForge 推荐使用 HexaCord, 这是一个 BungeeCord 分支,支持 Forge 的 IP forwarding。
如果你的 BungeeCord 代理运行于离线模式并且你使用了 Spigot,你也应该像下方一样开启 IP forwarding,但是推荐你安装 Paper 并设置 paper.yml 中的 bungee-online-mode: false
。
如果还有什么原因导致了你无法设置 Ip forwarding,你可能需要将其设置为 false,请确保这样做之前你知道这样做的后果。
示例
use-server-uuids: true
log-notify
当任何权限被修改后是否向玩家发送长的提醒。提醒将只发送给拥有正确权限的用户。
提醒可以在游戏中使用 /lp log notify off
临时关闭。
示例
log-notify: true
world-rewrite
允许你给发送的世界设置别名,别名附加于真正的世界名,递归应用。
示例
world-rewrite: world_nether: world world_the_end: world
group-name-rewrite
允许你设置组名的别名。它们是纯粹的显示名称,实际上的名称不会改变,只有命令/信息的输出会改变。
示例
group-name-rewrite: default: Member
temporary-add-behaviour
控制临时的权限/父类/元数据,默认是 deny
accumulate
- 任何添加的节点将被添加replace
- 临时的节点持续的最长的时间,其他的节点将被忽略deny
- 如果你试图添加一个重复的临时节点命令将被拒绝
示例
temporary-add-behaviour: deny
primary-group-calculation
LuckPerms 如何决定用户的主组,Bukkit/Bungee 默认的是 stored
,Sponge 默认的是 parents-by-weight
。
stored
- 使用存储的记录在文件/数据库的数据parents-by-weight
- 使用用户权重最高的父组all-parents-by-weight
- 像上面的一样,但是计算所有的继承,包括直接继承和间接继承
示例
primary-group-calculation: stored
权限计算
apply-wildcards
插件是否应用带有通配符的权限。
如果插件的作者没有提供他们自己的通配符权限,那么开启这个选项将会让 LuckPerms 转换它们。Bukkit 尤其不认同这种做法,但是它们在管理员中间适用的相当普遍。在 Sponge,这个选项控制 "node.part.*" 类型的通配符是否生效。
示例
apply-wildcards: true
apply-regex
插件是否转换正则表达式权限。
如果设置为 true,LuckPerms 将会检测任何正则表达式权限,正则表达式权限节点以 "r=" 开头,返回所有匹配这个节点的请求。如果你没有任何正则表达式权限的设置,开启这个将没有任何性能的影响。这个特点的更多信息可以在这里找到。
示例
apply-regex: true
apply-shorthand
是否允许GLOB风格的速记权限。
更多这个特性的信息可以在这里找到。
示例
apply-shorthand: true
apply-bukkit-child-permissions
插件是否应用Bukkit子权限。
插件的作者可以给他们的插件定义自定义权限结构,如果设置为 true,LuckPerms 将会使用他们。
这个选项是默认启用的,因为这是一个基础的Bukkit特性,大多数的服务器管理员都需要,但是如果你不希望使用这个系统,它将可以被安全关闭。
示例
apply-bukkit-child-permissions: true
apply-bukkit-default-permissions
插件是否应该应用Bukkit的默认权限。
插件作者可以给所有的用户默认权限,或者设置应该/不应该给OP玩家。如果这个设置为 false,LuckPerms将会忽略这些默认权限。
这个选项是默认启用的,因为这是一个基础的Bukkit特性,大多数的服务器管理员都需要,但是如果你不希望使用这个系统,它将可以被安全关闭。
示例
apply-bukkit-default-permissions: true
apply-bukkit-attachment-permissions
插件是否应该应用Bukkit的附加权限。
服务器的其他插件可以添加它们自身的"权限附加"到玩家,这允许大量的玩家附加权限持续到回话结束,或者被移除。如果这个设置被设置为 false,LuckPerms 在考虑玩家是否有某一特定的权限时,将不会包括这些附加的权限。
你在开启这个选项后可能会见到一个小的性能提升,关闭 OP 系统后,这个系统可以非常有效的阻止恶意插件给玩家任意权限的尝试。
这个选项是默认启用的,因为这是一个基础的Bukkit特性,大多数的服务器管理员都需要,但是如果你不希望使用这个系统,它将可以被安全关闭。
示例
apply-bukkit-attachment-permissions: true
apply-bungee-config-permissions
插件是否应用 BungeeCord config.yml 里设置的权限和组。
如果设置为 false,LuckPerms 将会忽略这些值。
这个是默认关闭的,因为所有的权限都应该通过 LuckPerms 来设置,这样他们可以在游戏中查看和编辑。
示例
apply-bungee-config-permissions: false
apply-sponge-implicit-wildcards
插件是否解析并应用Sponge的通配符集成系统的权限。
如果一个玩家获得了 example
,那么他将自动获得 example.function
权限,example.another
,example.deeper.nesting
等。
如果这个选项被设置为 false,系统将不会被应用。
这个选项是默认启用的,因为这是一个基础的Sponge特性,大多数的服务器管理员都需要,但是如果你不希望使用这个系统,它将可以被安全关闭。
示例
apply-sponge-implicit-wildcards=true
apply-sponge-default-subjects
插件是否应用Sponge的默认权限。
插件将会授予玩家一组默认权限,如果设置为 false,那么插件将在考虑玩家是否拥有某权限时忽略这一组权限。
这个选项是默认启用的,因为这是一个基础的Sponge特性,大多数的服务器管理员都需要,但是如果你不希望使用这个系统,它将可以被安全关闭。
示例
apply-sponge-default-subjects=true
Server Operator / Vault (Bukkit version only)
enable-ops
是否使用原版的OP系统。
如果设置为 false,所有玩家都不是 op,op/deop 命令将被禁止。
示例
enable-ops: true
auto-op
如果设置为 true,任何拥有 "luckperms.autoop" 权限的玩家将会自动设置为服务器OP。
这个权限可以被继承,或者设置在特定的服务器/世界,临时的等等。另外,设置此选项为 true 将会强制上方的选项 "enable-ops" 为 false。所有的用户都将被 deop 直到他们有了这个权限节点,并且 op/deop 命令将被禁止。
有一点需要注意的是,自动OP检测只有在玩家进入服务器和切换世界时生效,这意味着,简单的移除他们的权限并不会自动去除玩家的OP,玩家必须重新登陆才能使其生效。
推荐使用这个选项而不是简单的分配一个 "*" 权限。
示例
auto-op: false
commands-allow-op
OP玩家是否有权限使用 LuckPerms 指令。
设置为 false 将只允许有命令指定的权限的玩家使用。
示例
commands-allow-op: true
use-vault-server
下方的 vault-server
选项是否应该使用。
当这个选项设置为 false 时,"server" 值用于 Vault 操作。
示例
use-vault-server: false
vault-server
Vault 操作中使用的服务器名称。
如果你不想让 Vault 操作为特定服务器,将其设置为 "global"。
只有当 use-vault-server
设置为 true 时生效。
示例
vault-server: global
vault-include-global
玩家组接受元数据时是否考虑全局权限。
示例
vault-include-global: true
vault-ignore-world
Vault 操作是否应该忽略提供的世界参数。
默认情况下,如果没有提供世界参数,权限将会设置在玩家当前的世界。(Vault 的设计给满分)。设置为 true 来更改这项操作的结果。
示例
vault-ignore-world: false
vault-debug
LuckPerms 是否应当在一个插件使用了 Vault 的功能后打印 debug 信息。
示例
vault-debug: false
Storage
storage-method
插件应该使用哪个存储方法。
查看这里查看支持的所有类型。
接受: mysql
, mariadb
, postgresql
, sqlite
, h2
, json
, yaml
, mongodb
如果你的 MySQL 支持,那么 mariadb
选项比 mysql
更好,h2
当然也比 sqlite
更好。
示例
storage-method: h2
watch-files
当使用基于文件的存储系统,LuckPerms将会监视数据文件的变化,并在文件变化被检测到的时候自动规划更新数据、
如果不想让这个发生,那么将此选项设置为 false。
示例
watch-files: true
split-storage
分离存储允许你为不用的数据类型使用不同的存储选项。
不同类型的数据有: * user
- 关于用户的数据,包含权限、父组和元数据 * group
- 关于组的数据,包括了组权限、继承组和元数据 * track
- 关于轨道的数据(或者说是梯子) * uuid
- LuckPerms 适用的 uuid <-- --> username
缓存,当 /lp user
使用的是用户名而不是 UUID * log
- LuckPerms 存储的日志 允许的数据类型在上方列出
示例
split-storage: enabled: true methods: user: mariadb group: yaml track: yaml uuid: mariadb log: mariadb
data
此选项用于指定数据库的存储凭据。
address
- 数据库的地址,如果使用默认的端口可以不填写,如果使用了特定端口,请使用host:port
database
- LuckPerms 应该使用的数据库username
- 使用的用户名password
- 使用的密码,留空则不使用验证
示例
data: address: localhost database: minecraft username: root password: ''
pool-size
MySQL 连接池大小。
默认为 10
,应该适合大部分服务器。只有你清楚你在干什么再更改这项设置。
查看这里了解更多关于连接池大小的信息。
示例
data: pool-size: 10 # The size of the MySQL connection pool.
sync-minutes
此选项控制 LuckPerms 多长时间进行一次同步任务。
同步任务将会刷新存储中的所有信息,保证插件使用的是最新的数据。
这个选项默认关闭,因为大多数的用户都是不需要这个功能的,但是如果你使用远程存储,又没有设置信息服务,那么你可能将其设置为像 3 这样的数值。
设置为 -1 来完全停用这个任务。
示例
data: sync-minutes: 3
messaging-service
设置信息服务。
如果开启并且正确配置了,LuckPerms 可以使用消息系统来通知其他连接的服务器更改。使用命令 /luckperms networksync
来推送更改,使用这个服务不会存储数据,只是用于消息平台。
如果你决定开启这个功能,你应该设置 "sync-minutes" 为 -1,因为没有必要将数据推至数据库。
可用的选项:
bungee
- 使用插件的 messaging channel。必须在所有的子服务器开启才能使用,并且要在 Bungee 安装 LuckPerms。lilypad
- 使用 LilyPad 的 pub sub 来推送更改。你需要安装 LilyPad-Connect 插件。redis
- 使用 Redis 的 pub sub 来推送更改。none
- 啥都没有!
示例
messaging-service: none
auto-push-updates
LuckPerms 是否应该在命令执行后自动推送更改。
示例
auto-push-updates: true
redis
Redis的设定。
address
- redis 使用的地址,默认使用默认端口(6379),如果你有特定的端口,请使用host:port
。password
- 使用 Redis 需要的密码。留空则不使用验证。
示例
redis: enabled: true address: localhost password: 'passw0rd'