• 欢迎来到Minecraft插件百科!
  • 对百科编辑一脸懵逼?帮助:快速入门带您快速熟悉百科编辑!
  • 因近日遭受攻击,百科现已限制编辑,有意编辑请加入插件百科企鹅群:223812289

LuckPerms:修订间差异

来自Minecraft插件百科
跳转到导航 跳转到搜索
C7w留言 | 贡献
第2,257行: 第2,257行:
* luckperms.log.grouphistory
* luckperms.log.grouphistory
* luckperms.log.trackhistory
* luckperms.log.trackhistory
===从其他插件迁移数据===
LuckPerms 有内置的支持其他的权限插件轻松迁移到 LuckPerms 的功能。
==== 开始之前 ====
需要注意的是这个系统还不是那么的完美,在绝大多数情况下,它在转变数据时相当不错,但是不是所有的数据都是相同的,并且有时我可能没有考虑这么多。
LuckPerms 有和其他权限插件相同的地方,但是有些部分从根本上不同,有些迁移运用了一些技巧。
另外,让插件迁移你的所有的数据意味着你没有机会学习任何一个 LuckPerms 命令,这可能会是一个麻烦的地方,如果你是从 PermissionsEx 或者 GroupManager 迁移来的数据,你应该看看 [https://github.com/PluginsCDTribe/LuckPerms/wiki/GM-&-PEX-Command-Equivalents GM PEX 的等同命令]
如果你使用了老版本的权限插件,或者你根本不喜欢的,现在可能是一个机会来重新构建清理,顺便学习 LuckPerms 的命令!
不?!就喜欢你现在的权限插件?让我们来迁移。
==== 目前支持的插件 ====
{|
! Bukkit / Spigot
! BungeeCord
! Sponge
|-
| GroupManager
| BungeePerms
| PermissionsEx
|-
| PermissionsEx
|
| PermissionManager
|-
| zPermissions
|
|
|-
| PowerfulPerms
|
|
|-
| bPermissions
|
|
|}
==== 怎么做 ===
迁移的处理很简单,但是每个平台可能有不同。
# 将 LuckPerms jar 文件放入你的服务器文件夹。
# 保证两个权限插件的文件夹在同一个文件夹里(现在还不要卸载)
# 开启服务器,你可以在活跃的服务器来进行这个操作,但是我建议在没有人的服务器上进行。
'''运行一下命令: <code>lp migration &lt;插件名&gt;</code>'''
有些插件需要你填写额外的选项/标签,如果需要,你会在迁移之前被通知。
接着只需要让 LuckPerms 处理剩下的事了!你将会被提示迁移进度,完成时也会被提示。
当处理完成,停止服务器,移除其他权限插件的 jar,再次开启你的服务器。
控制台的输出一定是冗长繁杂的,以 &quot;(LP) LOG&quot; 开头的命令都可以忽略,但是栈堆信息不应该忽略(一般表示出现了什么问题)。如果你的迁移输出含有栈堆信息,请反馈给我,更多的信息在这一个页面的底部。
===== PowerfulPerms =====
处理 PowerfulPerms 的过程更加复杂。
玩家的信息只有在加入服务器时才被加载,插件 API 没有方法一次性获得所有的玩家的数据。
这意味着我们在导入数据时,我们必须得查询 PowerfulPerms MySQL 表来获得所有玩家的信息。
命令使用将会不同。
<code>/luckperms migration powerfulperms [address] [database] [username] [password] [db table]</code>
解释: * address = MySQL 服务器的 IP 地址,比如 127.0.0.1:3306 * database = PowerfulPerms 插件使用的数据库的名称 * username = SQL 服务器登入需要的用户名 * password = SQL 服务器登入需要的密码 * db table = 存储玩家数据的表名(尽管我们只关注 UUID 列表)
默认的表名,据我所知,是 &quot;players&quot;,但是如果你添加了表名的前缀,你需要添加他们。
比如如果我的表的前缀是 &quot;pp_&quot;,那么 db table = &quot;pp_players&quot;(不需要引号)
比如: <code>/luckperms migration powerfulperms 127.0.0.1:3306 minecraft root passw0rd players</code>
==== 错误 ====
如果这个命令不存在,请检查这个插件是否正确加载。
如果处理没有完成,并且打印了错误消息,请在 GitHub 提交 issue 或者 [https://github.com/PluginsCDTribe/LuckPerms/wiki#cant-find-something 在这里联系我],我将尽力尽可能快的回复你。
===GM&PEX对应等效指令===

2017年8月15日 (二) 03:45的版本

欢迎来到 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页面查看】

你也可以把录像上传到网上,方便查看、分析和阅读:

[https://git.io/vQitM]

权限树系统

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

服务器的名称,用于制定服务器的权限。

如果设置为 "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.anotherexample.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'

命令使用

当输入无效的参数时,命令的使用方法将会打印在控制台/聊天中,简单的输入 /lp 或者 /lpb 会显示当前用户的权限能够使用的所有命令。

如果输入命令后返回的只有插件版本,那么你没有权限使用任何插件,你需要使用服务器控制台来给自己使用 LuckPerms 命令的权限

别名

每个平台的可用的别名都列在下方,每个命令的效果都是一样的,所以你可以选择自己喜欢的来使用。

Bukkit / Sponge BungeeCord
/luckperms /luckpermsbungee
/perms /bperms
/permissions /bpermissions
/perm /bperm
/lp /lpb

重要 在BungeeCord上命令有所不同,这可以让你选择命令使用的地方,如果命令全部相同,那么你就没有机会控制你的子服务器了。

如果你在使用 Bukkit/Spigot,作为默认,所有是OP的玩家都有使用LuckPerms命令的权限,你可以在配置文件中更改这项选项。

什么是上下文(Context)

参数 context 在LuckPerms中使用频率很高,他的意义对大多数的用户可能不是那么显而易见。

Context,在常识中,意味着环境,某个权限,父组,前缀后缀抑或是元数据。

上下文分为两部分,键和值。LuckPerms提供了默认的两种上下文,服务器和世界上下文,但是可能服务器的其他的插件提供更多可用的上下文,用户的"金钱"上下文可以在使用用户命令时找到。

举个例子,如果我想要在特定的世界设定我的权限,我就会使用世界上下文,解释的更详细些,我们假设这个世界叫做"nether",我在命令中使用的上下文就将是world=nether

当在命令中使用时,上下文 "key" 和 "value" 使用 = 分隔,你可以指定任意多的上下文,但是请记住所有的上下文都应该指定玩家相关的来应用权限之类的东西。

最终,举个例子,我想将 "luckperms.info" 权限在 "nether" 世界设置为 true,只有在 "factions" 服务器有效,命令将会是:

/luckperms user Luck permission set luckperms.info true server=factions world=nether.

这就是用来接收上下文的命令的相同的格式。

最终,给老用户的一些提醒,在命令的最后添加两个额外的 [服务器] [世界] 参数仍然被支持!

概览

= 参数键值:

  • <必需> - 运行指令时你 必需 指定这个参数
  • [可选] - 如果没有指定将会使用默认

如果你想在参数中添加空格,你必须像这样 " " 使用引号把参数包起来。

下方使用的别名 (/lp) 可以使用上方介绍的别名中的任意一个替换。

基础
用户 (/lp user <user> ...)
组 (/lp group <group> ...)
权限 (/lp user <user> permission ... | /lp group <group> permission ...)
继承 (/lp user <user> parent ... | /lp group <group> parent ...)
元数据 (/lp user <user> meta ... | /lp group <group> meta ...)
轨道 (/lp track <track> ...)
日志 (/lp log ...)

命令细节

基础

/lp

权限: n/a
基础的 LuckPerms 命令。将会打印用户有权限使用的所有的命令,包含每个命令的基础信息,和接受的参数。



/lp sync

权限: luckperms.sync
刷新所有加载的数据,如果存储中有变化,那么这个命令将会将服务器的信息添加存储中的更改。



/lp info

权限: luckperms.info
列出 LuckPerms 的一些信息/数据,包括 debug 输出,统计,设置和配置中的一些重要的值。



/lp verbose

权限: luckperms.verbose
参数:

  • <on|record|off|paste> - 启用或禁用日志,或者粘贴日志输出 * [filter] - 排序输出使用的过滤器

控制 LuckPerms 日志输出系统,这允许你坚挺所有对玩家的权限检查,当插件检查了玩家的权限,检查会被 verbose handler 处理。

如果你的过滤器匹配了权限检查,你就会被通知。

on 将会启用这个系统,并且当过滤器匹配时在聊天栏向你发送警告。record 会做相同的事,但是不会向你发送聊天中的警告。off 将会关闭这个系统,paste 将会把前 3500 个结果上传到 GitHub 的 pastebin,并向你提供链接。

过滤器用来匹配玩家检查到的权限的开头,你可以使用 &(与)和 |(或)符号,或者用 ! 来否定一个匹配。( ) 也是支持的。

例子:

  • Luck & (essentials | worldedit) - 匹配每个检查 Luck 的以 "essentials" 或 "worldedit" 开头的权限。 * !Luck & !anticheat - 匹配每个对不是 Luck 的玩家的对以不是 "anticheat" 开头的权限的检查。 * anticheat & !anticheat.check - matches any checks starting with "anticheat" but not starting with "anticheat.check"

更多的信息可以在这里找到。



/lp tree

权限: luckperms.tree
参数:

  • [selection] - 树的根 (指定 . 包含所有的权限) * [max level] - 最多返回多少子分支 (换句话说,树的宽度) * [player] - 检查的在线玩家的名称

生成注册在服务器的权限的树来查看,树由服务器中的插件的数据提供而构建,当插件检查权限时这棵树将会扩大。

所有的参数都是可选的。默认的选择是 . (只是一个点,代表所有),默认的最大等级是 5

选择允许你只生成树的一部分,比如,选择 luckperms.user 将只会返回树中以 luckperms.user 开头的分支。

Max level 允许你定义最多包括的子分支,举个例子,如果你设置最大等级为 2,"luckperms.user" 将会被返回,但是 "luckperms.user.info" 将不会被显示。



/lp search

权限: luckperms.search
参数:

  • <permission> - 搜索的权限

搜索所有用户/组的特定权限,返回分页的所有条目的列表。



/lp check

权限: luckperms.check
参数:

  • <user> - 检查的玩家 * <permission> - 检查的权限

执行一个普通的对在线玩家的权限检查,返回结果,这个检查与其他插件的权限检查的结果相同。



/lp networksync

权限: luckperms.sync
刷新所有存储提供的缓存数据,接着(如果提供了的话)使用消息服务来请求连接的其他的服务器并请求所有服务器同步。



/lp import

权限: luckperms.import
参数:

  • <file> - 导入的文件

从文件导入 LuckPerms 的数据,文件必须是一列命令,以 "/luckperms" 开头,这个文件可以使用 export 命令生成,文件必须在插件的目录下。



/lp export

权限: luckperms.export
参数:

  • <file> - 导出的文件

将 LuckPerms 的数据导出到一个文件,这个文件也可以作为一个备份,或者在 LuckPerms 的安装之间转移数据。这个文件可以使用 import 命令重新导入,生成的文件在插件的目录下。



/lp reloadconfig

权限: luckperms.reloadconfig
重载配置文件的部分值。不是所有的条目都会被这个命令重载,有些需要一次完全的服务器重启才能生效(比如存储的设置)。



/lp bulkupdate

权限: 仅控制台
允许你执行一次对所有权限数据的块编辑。详细的指南可以在这里找到。



/lp migration

权限: luckperms.migration
迁移系统使用的主命令。允许你从其他的权限插件导入权限数据,更多的关于这个特性的信息可以在这里找到。



/lp creategroup

权限: luckperms.creategroup
参数:

  • <name> - 组的名称

创建一个新的组。



/lp deletegroup

权限: luckperms.deletegroup
参数:

  • <name> - 组的名称

永久的删除一个组。



/lp listgroups

权限: luckperms.listgroups
显示当前的所有的组。



/lp createtrack

权限: luckperms.createtrack
参数:

  • <name> - 路线名称

创建新的路线。



/lp deletetrack

权限: luckperms.deletetrack
参数:

  • <name> - 路线的名称

永久删除一个路线。



/lp listtracks

权限: luckperms.listtracks
显示当前所有的路线。



用户 (/lp user <user> ...)

/lp user <user> info

权限: luckperms.user.info
显示一个用户的信息,包括用户名,主组,继承组,和当前的上下文。



/lp user <user> editor

权限: luckperms.user.editor
开启编辑指定的用户的权限的网页接口,当更改保存后,你将会收到一条命令,使用后使更改生效。



/lp user <user> switchprimarygroup

权限: luckperms.user.switchprimarygroup
参数:

  • <group> - 切换的组

这个命令允许你更改用户的主组,如果他们还不是这个组的成员,他们将被添加到新的组。这不应该作为 "parent set" 命令的替代,他们的现有的主组将不会被移除,而是作为继承组(一个用户可以有多个继承组)。

如果 primary-group-calculation 选项被设置为不是 "stored" 的其他东西,你应该使用 parent add(#lp-usergroup-usergroup-parent-add) 或者 parent set(#lp-usergroup-usergroup-parent-set) 命令而不是这个命令。



/lp user <user> promote

权限: luckperms.user.promote
参数:

  • <track> - 升级遵循的路线 * [context...] - 升级使用的上下文

这个命令将会沿着一条路线提升玩家,命令会检查玩家在给出的上下文里是否在这个路线上,如果用户没有在这条路线,他们将会被加入这条路线的第一个组,如果玩家在这条路线上的不止一个组,命令将会执行失败。在其他情况下,玩家将会被成功提升,并将会被从现有的组移除。如果路线动作影响了用户的主组,他们也会被更新。



/lp user <user> demote

权限: luckperms.user.demote
参数:

  • <track> - 降级的遵循的路线 * [context...] - 降级使用的上下文

这个命令将会沿着一条路线降级玩家,命令会检查玩家在给出的上下文里是否在这个路线上,如果用户没有在这条路线,或者玩家在这条路线上的不止一个组,命令将会执行失败。在其他情况下,玩家将会被成功降级,并将会被从现有的组移除。如果路线动作影响了用户的主组,他们也会被更新。



/lp user <user> showtracks

权限: luckperms.user.showtracks
显示玩家当前所在的全部路线。



/lp user <user> clear

权限: luckperms.user.clear
参数:

  • [context...] - 用于过滤的上下文

清除玩家的权限,继承组和元数据。



组 (/lp group <group> ...)

/lp group <group> info

权限: luckperms.group.info
显示一个组的信息。



/lp group <group> editor

权限: luckperms.group.editor
开启编辑指定的组的权限的网页接口,当更改保存后,你将会收到一条命令,使用后使更改生效。



/lp group <group> listmembers

权限: luckperms.group.listmembers
参数:

  • [page] - 查看的页数

显示直接继承这个组的用户/组



/lp group <group> setweight

权限: luckperms.group.setweight
参数:

  • <weight> - 设置的权重

设置组的权重值,这决定了决定用户的权限的顺序。越大的值代表越高的权重。



/lp group <group> showtracks

权限: luckperms.group.showtracks
显示一个组所在的所有的路线。



/lp group <group> clear

权限: luckperms.group.clear
参数:

  • [context...] - 用于过滤的上下文

清除组的权限,继承组和元数据。



/lp group <group> rename

权限: luckperms.group.rename
参数:

  • <new name> - 组的新的名称

更改组的名称,注意任何组的成员都不会知道这个变更,他们还将在原来的旧组的组名。如果你希望更新这些状态,你应该使用块变更特性来更新存在的条目。



/lp group <group> clone

权限: luckperms.group.clone
参数:

  • <new name> - 复制的名称

创建一个组的不同名称的拷贝。



权限 (/lp user <user> permission ... | /lp group <group> permission ...)

/lp user/group <user|group> permission info

权限: luckperms.user.permission.info 或 luckperms.group.permission.info
显示一个用户/组拥有的所有的权限。



/lp user/group <user|group> permission set

权限: luckperms.user.permission.set or luckperms.group.permission.set
参数:

  • <node> - 设置的权限节点 * <true|false> - 设置权限的值 * [context...] - 设置权限的上下文

设置(或给予)某个用户/组一个权限,提供 false 值将会否定这个权限。



/lp user/group <user|group> permission unset

权限: luckperms.user.permission.unset or luckperms.group.permission.unset
参数:

  • <node> - 取消设置的权限节点 * [context...] - 取消设置权限的上下文

取消设置一个用户或组的权限节点。



/lp user/group <user|group> permission settemp

权限: luckperms.user.permission.settemp or luckperms.group.permission.settemp
参数:

  • <node> - 设置的权限节点 * <true|false> - 设置的权限的值 * <duration> - 权限过期的时间 * [context...] - 权限设置的上下文

给一个玩家/组设置临时权限,提供 false 值将会否定这个权限。持续时间应为时间段或者一个标准的 Unix 时间戳,比如 "3d13h45m" 将会设置权限在 3 天, 13 小时 45 分钟后过期。"1482694200" 会设置过期时间为 7:30PM 于 25th December 2016。



/lp user/group <user|group> permission unsettemp

权限: luckperms.user.permission.unsettemp or luckperms.group.permission.unsettemp
参数:

  • <node> - 取消设置的权限节点 * [context...] - 取消设置权限的上下文

取消设置一个用户或组的临时权限节点。



/lp user/group <user|group> permission check

权限: luckperms.user.permission.check or luckperms.group.permission.check
参数:

  • <node> - 检查的权限节点 * [context...] - 检查的权限节点的上下文

检查一个组或者玩家有特定的权限



/lp user/group <user|group> permission checkinherits

权限: luckperms.user.permission.checkinherits or luckperms.group.permission.checkinherits
参数:

  • <node> - 检查的权限节点 * [context...] - 检查的权限节点的上下文

检查一个组或者玩家继承了特定的权限,如果是,从哪里继承的。



继承组 (/lp user <user> parent ... | /lp group <group> parent ...)

/lp user/group <user|group> parent info

权限: luckperms.user.parent.info or luckperms.group.parent.info
显示一个用户/组的继承的组



/lp user/group <user|group> parent set

权限: luckperms.user.parent.set or luckperms.group.parent.set
参数:

  • <group> - 设置的组 * [context...] - 设置的组的上下文

设置一个用户/组的继承组,不像是 "parent add" 命令,这个命令将会清空所有已经存在的组。"add" 命令只会简单的将组添加到已经存在的组里,如果命令执行时没有上下文环境,这个插件也会更新玩家的主组。



/lp user/group <user|group> parent add

权限: luckperms.user.parent.add or luckperms.group.parent.add
参数:

  • <group> - 添加的组 * [context...] - 添加的组用的上下文

添加一个集成组到一个玩家/组,不像是 "parent set" 命令,这个命令只会将组添加进已经存在的组的列表。没有已经存在的继承组会被移除,用户的主组也不会被影响。



/lp user/group <user|group> parent remove

权限: luckperms.user.parent.remove or luckperms.group.parent.remove
参数:

  • <group> - 移除的组 * [context...] - 移除的组的上下文

移除一个用户/组的继承组。



/lp user/group <user|group> parent settrack

权限: luckperms.user.parent.settrack or luckperms.group.parent.settrack
参数:

  • <track> - 设置的路线 * <group> - 设置的组,或者这个路线的组的相对位置 * [context...] - 设置的组的上下文

设置用户/组在给出的路线的位置,这个跟 set 命令相同,除了这个将会清除在指定的路线上已经存在的组,其他继承组不会被影响。



/lp user/group <user|group> parent addtemp

权限: luckperms.user.parent.addtemp or luckperms.group.parent.addtemp
参数:

  • <group> - 添加的组 * <duration> - 组的过期时间 * [context...] - 添加组的上下文

给一个玩家/组添加临时继承组。持续时间应为时间段或者一个标准的 Unix 时间戳,比如 "3d13h45m" 将会设置权限在 3 天, 13 小时 45 分钟后过期。"1482694200" 会设置过期时间为 7:30PM 于 25th December 2016。



/lp user/group <user|group> parent removetemp

权限: luckperms.user.parent.removetemp or luckperms.group.parent.removetemp
参数:

  • <group> - 移除的组 * [context...] - 移除的组的上下文

移除一个用户/组的临时继承组。



/lp user/group <user|group> parent clear

权限: luckperms.user.parent.clear or luckperms.group.parent.clear
参数:

  • [context...] - 用于过滤的上下文

移除所有继承组。



/lp user/group <user|group> parent cleartrack

权限: luckperms.user.parent.cleartrack or luckperms.group.parent.cleartrack
参数:

  • <track> - 移除的路线 * [context...] - 用于过滤的上下文

移除指定路线的玩家/组的所有继承组。



元数据 (/lp user <user> meta ... | /lp group <group> meta ...)

/lp user/group <user|group> meta info

权限: luckperms.user.meta.info or luckperms.group.meta.info
显示用户/组的继承元数据,前缀和后缀。



/lp user/group <user|group> meta set

权限: luckperms.user.meta.set or luckperms.group.meta.set
参数:

  • <key> - 设置的键值 * <value> - 设置的键值的值 * [context...] - 设置的元数据的上下文

设置用户/组的键值对元数据,这些值可以用于读取并且可以通过其他使用 Vault 或者 Sponge Permissions API 的插件更改。



/lp user/group <user|group> meta unset

权限: luckperms.user.meta.unset or luckperms.group.meta.unset
参数:

  • <key> - 取消设置的键 * [context...] - 取消设置的元数据的上下文

取消设置一个用户或组的元数据键值。



/lp user/group <user|group> meta settemp

权限: luckperms.user.meta.settemp or luckperms.group.meta.settemp
参数:

  • <key> - 设置的键值 * <value> - 设置的键的值 * <duration> - 元数据过期的时间 * [context...] - 设置的元数据的上下文

给一个玩家/组设置临时元数据键值,提供 false 值将会否定这个权限。持续时间应为时间段或者一个标准的 Unix 时间戳,比如 "3d13h45m" 将会设置权限在 3 天, 13 小时 45 分钟后过期。"1482694200" 会设置过期时间为 7:30PM 于 25th December 2016。



/lp user/group <user|group> meta unsettemp

权限: luckperms.user.meta.unsettemp or luckperms.group.meta.unsettemp
参数:

  • <key> - 取消设置的键 * [context...] - 取消设置的元数据的上下文

取消设置一个用户或组的临时元数据。



/lp user/group <user|group> meta addprefix

权限: luckperms.user.meta.addprefix or luckperms.group.meta.addprefix
参数:

  • <priority> - 添加前缀的优先度 * <prefix> - 实际的前缀字符串 * [context...] - 添加前缀的上下文

给一个玩家/组设置前缀,使用 " " 来添加空格。



/lp user/group <user|group> meta addsuffix

权限: luckperms.user.meta.addsuffix or luckperms.group.meta.addsuffix
参数:

  • <priority> - 添加后缀的优先度 * <suffix> - 实际的后缀字符串 * [context...] - 添加后缀的上下文

给一个玩家/组设置后缀,使用 " " 来添加空格。



/lp user/group <user|group> meta removeprefix

权限: luckperms.user.meta.removeprefix or luckperms.group.meta.removeprefix
参数:

  • <priority> - 移除前缀的优先度 * <prefix> - 实际的前缀字符串 * [context...] - 添加前缀的上下文

给一个玩家/组移除前缀,使用 " " 来添加空格。



/lp user/group <user|group> meta removesuffix

权限: luckperms.user.meta.removesuffix or luckperms.group.meta.removesuffix
参数:

  • <priority> - 移除后缀的优先度 * <suffix> - 实际的后缀字符串 * [context...] - 添加后缀的上下文

给一个玩家/组移除后缀,使用 " " 来添加空格。



/lp user/group <user|group> meta addtempprefix

权限: luckperms.user.meta.addtempprefix or luckperms.group.meta.addtempprefix
参数:

  • <priority> - 添加前缀的优先度 * <prefix> - 实际的前缀字符串 * <duration> - 前缀过期的时间 * [context...] - 添加前缀的上下文

给一个玩家/组设置临时前缀,提供 false 值将会否定这个权限。持续时间应为时间段或者一个标准的 Unix 时间戳,比如 "3d13h45m" 将会设置权限在 3 天, 13 小时 45 分钟后过期。"1482694200" 会设置过期时间为 7:30PM 于 25th December 2016。



/lp user/group <user|group> meta addtempsuffix

权限: luckperms.user.meta.addtempsuffix or luckperms.group.meta.addtempsuffix
参数:

  • <priority> - 添加后缀的优先度 * <suffix> - 实际的后缀字符串 * <duration> - 后缀过期的时间 * [context...] - 添加后缀的上下文

给一个玩家/组设置临时后缀,提供 false 值将会否定这个权限。持续时间应为时间段或者一个标准的 Unix 时间戳,比如 "3d13h45m" 将会设置权限在 3 天, 13 小时 45 分钟后过期。"1482694200" 会设置过期时间为 7:30PM 于 25th December 2016。



/lp user/group <user|group> meta removetempprefix

权限: luckperms.user.meta.removetempprefix or luckperms.group.meta.removetempprefix
参数:

  • <priority> - 移除前缀的优先度 * <prefix> - 实际的前缀字符串 * [context...] - 添加前缀的上下文

给一个玩家/组移除临时前缀,使用 " " 来添加空格。



/lp user/group <user|group> meta removetempsuffix

权限: luckperms.user.meta.removetempsuffix or luckperms.group.meta.removetempsuffix
参数:

  • <priority> - 移除后缀的优先度 * <suffix> - 实际的后缀字符串 * [context...] - 添加后缀的上下文

给一个玩家/组移除临时后前缀,使用 " " 来添加空格。



/lp user/group <user|group> meta clear

权限: luckperms.user.meta.clear or luckperms.group.meta.clear
参数:

  • [context...] - 用于过滤的上下文

移除所有的元数据,前后缀。



路线 (/lp track <track> ...)

/lp track <track> info

权限: luckperms.track.info
显示路线中的组。



/lp track <track> append

权限: luckperms.track.info
参数:

  • <group> - 添加的组

在路线结尾追加一个组。



/lp track <track> insert

权限: luckperms.track.insert
参数:

  • <group> - 插入的组 * <position> - 插入的组的位置

在指定的路线的位置插入一个组,为 1 的位置将会是路径的开始。



/lp track <track> remove

权限: luckperms.track.remove
参数:

  • <group> - 移除的组

从路线移除一个组。



/lp track <track> clear

权限: luckperms.track.clear
移除路线中的所有的组。



/lp track <track> rename

权限: luckperms.track.rename
参数:

  • <new name> - 路线的新名称

更改路线的名称。



/lp track <track> clone

权限: luckperms.track.clone
参数:

  • <new name> - 拷贝的名称

创建路线的不同名称的拷贝。



日志 (/lp log ...)

/lp log recent

权限: luckperms.log.recent
参数:

  • [user] - 用于过滤的名称、UUID * [page] - 查看的页数

显示最近的动作。



/lp log search

权限: luckperms.log.search
参数:

  • <query> - 查询的查询 * [page] - 查看的页数

搜索匹配查询的所有日志条目。



/lp log notify

权限: luckperms.log.notify
参数:

  • [on|off] - 是否开启

开关向发送者发送提醒的功能。



/lp log export

权限: luckperms.log.export
参数:

  • <file> - the file to export to

将日志导出为一列命令,可以被 "/lp import" 命令识别,这个特性应该尽量不使用,推荐使用 "/lp export" 命令。



/lp log userhistory

权限: luckperms.log.userhistory
参数:

  • <user> - 搜索的玩家 * [page] - 查看的页数

搜索有关给出玩家的日志。



/lp log grouphistory

权限: luckperms.log.grouphistory
参数:

  • <group> - 搜索的组 * [page] - 查看的页数

搜索有关给出组的日志。



/lp log trackhistory

权限: luckperms.log.trackhistory
参数:

  • <track> - 搜索的路线 * [page] - 查看的页数

搜索有关给出路线的日志。



指令权限

注意: 你可以使用通配符 * All commands - luckperms. All user commands - luckperms.user. All group commands - luckperms.group. All track commands - luckperms.track. All log commands - luckperms.log.*

基础
  • luckperms.sync
  • luckperms.info
  • luckperms.verbose
  • luckperms.tree
  • luckperms.search
  • luckperms.check
  • luckperms.import
  • luckperms.export
  • luckperms.reloadconfig
  • luckperms.migration
  • luckperms.creategroup
  • luckperms.deletegroup
  • luckperms.listgroups
  • luckperms.createtrack
  • luckperms.deletetrack
  • luckperms.listtracks
用户
  • luckperms.user.info
  • luckperms.user.permission.info
  • luckperms.user.permission.set
  • luckperms.user.permission.unset
  • luckperms.user.permission.settemp
  • luckperms.user.permission.unsettemp
  • luckperms.user.permission.check
  • luckperms.user.permission.checkinherits
  • luckperms.user.parent.info
  • luckperms.user.parent.set
  • luckperms.user.parent.add
  • luckperms.user.parent.remove
  • luckperms.user.parent.addtemp
  • luckperms.user.parent.removetemp
  • luckperms.user.parent.clear
  • luckperms.user.meta.info
  • luckperms.user.meta.set
  • luckperms.user.meta.unset
  • luckperms.user.meta.settemp
  • luckperms.user.meta.unsettemp
  • luckperms.user.meta.addprefix
  • luckperms.user.meta.addsuffix
  • luckperms.user.meta.removeprefix
  • luckperms.user.meta.removesuffix
  • luckperms.user.meta.addtempprefix
  • luckperms.user.meta.addtempsuffix
  • luckperms.user.meta.removetempprefix
  • luckperms.user.meta.removetempsuffix
  • luckperms.user.meta.clear
  • luckperms.user.editor
  • luckperms.user.switchprimarygroup
  • luckperms.user.showtracks
  • luckperms.user.promote
  • luckperms.user.demote
  • luckperms.user.clear
  • luckperms.group.info
  • luckperms.group.permission.info
  • luckperms.group.permission.set
  • luckperms.group.permission.unset
  • luckperms.group.permission.settemp
  • luckperms.group.permission.unsettemp
  • luckperms.group.permission.check
  • luckperms.group.permission.checkinherits
  • luckperms.group.parent.info
  • luckperms.group.parent.set
  • luckperms.group.parent.add
  • luckperms.group.parent.remove
  • luckperms.group.parent.addtemp
  • luckperms.group.parent.removetemp
  • luckperms.group.parent.clear
  • luckperms.group.meta.info
  • luckperms.group.meta.set
  • luckperms.group.meta.unset
  • luckperms.group.meta.settemp
  • luckperms.group.meta.unsettemp
  • luckperms.group.meta.addprefix
  • luckperms.group.meta.addsuffix
  • luckperms.group.meta.removeprefix
  • luckperms.group.meta.removesuffix
  • luckperms.group.meta.addtempprefix
  • luckperms.group.meta.addtempsuffix
  • luckperms.group.meta.removetempprefix
  • luckperms.group.meta.removetempsuffix
  • luckperms.group.meta.clear
  • luckperms.group.editor
  • luckperms.group.listmembers
  • luckperms.group.showtracks
  • luckperms.group.setweight
  • luckperms.group.clear
  • luckperms.group.rename
  • luckperms.group.clone
路线
  • luckperms.track.info
  • luckperms.track.append
  • luckperms.track.insert
  • luckperms.track.remove
  • luckperms.track.clear
  • luckperms.track.rename
  • luckperms.track.clone
日志
  • luckperms.log.recent
  • luckperms.log.search
  • luckperms.log.notify
  • luckperms.log.export
  • luckperms.log.userhistory
  • luckperms.log.grouphistory
  • luckperms.log.trackhistory

从其他插件迁移数据

LuckPerms 有内置的支持其他的权限插件轻松迁移到 LuckPerms 的功能。

开始之前

需要注意的是这个系统还不是那么的完美,在绝大多数情况下,它在转变数据时相当不错,但是不是所有的数据都是相同的,并且有时我可能没有考虑这么多。

LuckPerms 有和其他权限插件相同的地方,但是有些部分从根本上不同,有些迁移运用了一些技巧。

另外,让插件迁移你的所有的数据意味着你没有机会学习任何一个 LuckPerms 命令,这可能会是一个麻烦的地方,如果你是从 PermissionsEx 或者 GroupManager 迁移来的数据,你应该看看 GM PEX 的等同命令

如果你使用了老版本的权限插件,或者你根本不喜欢的,现在可能是一个机会来重新构建清理,顺便学习 LuckPerms 的命令!

不?!就喜欢你现在的权限插件?让我们来迁移。

目前支持的插件

Bukkit / Spigot BungeeCord Sponge
GroupManager BungeePerms PermissionsEx
PermissionsEx PermissionManager
zPermissions
PowerfulPerms
bPermissions

= 怎么做

迁移的处理很简单,但是每个平台可能有不同。

  1. 将 LuckPerms jar 文件放入你的服务器文件夹。
  2. 保证两个权限插件的文件夹在同一个文件夹里(现在还不要卸载)
  3. 开启服务器,你可以在活跃的服务器来进行这个操作,但是我建议在没有人的服务器上进行。

运行一下命令: lp migration <插件名>

有些插件需要你填写额外的选项/标签,如果需要,你会在迁移之前被通知。

接着只需要让 LuckPerms 处理剩下的事了!你将会被提示迁移进度,完成时也会被提示。

当处理完成,停止服务器,移除其他权限插件的 jar,再次开启你的服务器。

控制台的输出一定是冗长繁杂的,以 "(LP) LOG" 开头的命令都可以忽略,但是栈堆信息不应该忽略(一般表示出现了什么问题)。如果你的迁移输出含有栈堆信息,请反馈给我,更多的信息在这一个页面的底部。

PowerfulPerms

处理 PowerfulPerms 的过程更加复杂。

玩家的信息只有在加入服务器时才被加载,插件 API 没有方法一次性获得所有的玩家的数据。

这意味着我们在导入数据时,我们必须得查询 PowerfulPerms MySQL 表来获得所有玩家的信息。

命令使用将会不同。

/luckperms migration powerfulperms [address] [database] [username] [password] [db table]

解释: * address = MySQL 服务器的 IP 地址,比如 127.0.0.1:3306 * database = PowerfulPerms 插件使用的数据库的名称 * username = SQL 服务器登入需要的用户名 * password = SQL 服务器登入需要的密码 * db table = 存储玩家数据的表名(尽管我们只关注 UUID 列表)

默认的表名,据我所知,是 "players",但是如果你添加了表名的前缀,你需要添加他们。

比如如果我的表的前缀是 "pp_",那么 db table = "pp_players"(不需要引号)

比如: /luckperms migration powerfulperms 127.0.0.1:3306 minecraft root passw0rd players

错误

如果这个命令不存在,请检查这个插件是否正确加载。

如果处理没有完成,并且打印了错误消息,请在 GitHub 提交 issue 或者 在这里联系我,我将尽力尽可能快的回复你。

GM&PEX对应等效指令