关键术语
权限
在你的服务器上会有大量的特性,命令和一些新功能。 这其中的一些特性是服务器自带的,另一些是由“插件”所添加的。 与这些特性相联系的大多数行为都是由权限所控制的,因此你可以控制哪些用户可以使用你指定的特性或权限。
权限仅仅是个字符串,并且使用英文的句号(半角 → . ←)分成几部分。 举个例子, “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 | chatcolor.bold |
我想让“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 |
请注意配置文件不能在有新配置的时候自动添加,如果文件中没有找到任何东西,我们将使用默认选项。
索引
基础
serverinclude-globalinclude-global-worldapply-global-groupsapply-global-world-groupsuse-server-uuidslog-notifyworld-rewritegroup-name-rewritetemporary-add-behaviourprimary-group-calculation权限计算apply-wildcardsapply-regexapply-shorthandBukkitapply-bukkit-child-permissionsapply-bukkit-default-permissionsapply-bukkit-attachment-permissionsBungeeapply-bungee-config-permissionsSpongeapply-sponge-implicit-wildcardsapply-sponge-default-subjects服务器管理员 / Vault (仅 Bukkit 版本)enable-opsauto-opcommands-allow-opuse-vault-servervault-servervault-include-globalvault-ignore-worldvault-debug存储storage-methodwatch-filessplit-storagedatapool-sizetable-prefixsync-minutesmessaging-serviceauto-push-updatesredis
基础
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使用的是用户名而不是 UUIDlog– LuckPerms 存储的日志 允许的数据类型在上方列出
示例
split-storage:
enabled: true
methods:
user: mariadb
group: yaml
track: yaml
uuid: mariadb
log: mariadb
data
此选项用于指定数据库的存储凭据。
address– 数据库的地址,如果使用默认的端口可以不填写,如果使用了特定端口,请使用host:portdatabase– 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
- /lp
sync - /lp
info - /lp
verbose\ [filter] - /lp
tree[selection] [max level] [player] - /lp
search\ - /lp
check\ \ - /lp
networksync - /lp
import\ - /lp
export\ - /lp
reloadconfig - /lp
bulkupdate - /lp
migration - /lp
creategroup\ - /lp
deletegroup\ - /lp
listgroups - /lp
createtrack\ - /lp
deletetrack\ - /lp
listtracks
用户 (/lp user \ …)
- /lp user \
info - /lp user \
permission - /lp user \
parent - /lp user \
meta - /lp user \
editor - /lp user \
switchprimarygroup\ - /lp user \
promote\ [context…] - /lp user \
demote\ [context…] - /lp user \
showtracks - /lp user \
clear[context…]
组 (/lp group \ …)
- /lp group \
info - /lp group \
permission - /lp group \
parent - /lp group \
meta - /lp group \
editor - /lp group \
listmembers[page] - /lp group \
setweight\ - /lp group \
showtracks - /lp group \
clear[context…] - /lp group \
rename\ - /lp group \
clone\
权限 (/lp user \ permission … | /lp group \ permission …)
infoset\ \ [context…]unset\ [context…]settemp\ \ \ [context…]unsettemp\ [context…]check\ [context…]checkinherits\ [context…]
继承 (/lp user \ parent … | /lp group \ parent …)
infoset\ [context…]add\ [context…]remove\ [context…]settrack\ \ [context…]addtemp\ \ [context…]removetemp\ [context…]clear[context…]cleartrack\ [context…]
元数据 (/lp user \ meta … | /lp group \ meta …)
infoset\ \ [context…]unset\ [context…]settemp\ \ \ [context…]unsettemp\ [context…]addprefix\ \ [context…]addsuffix\ \ [context…]removeprefix\ [prefix] [context…]removesuffix\ [suffix] [context…]addtempprefix\ \ \ [context…]addtempsuffix\ \ \ [context…]removetempprefix\ [prefix] [context…]removetempsuffix\ [suffix] [context…]clear[context…]
轨道 (/lp track \ …)
- /lp track \
info - /lp track \
append\ - /lp track \
insert\ \ - /lp track \
remove\ - /lp track \
clear - /lp track \
rename\ - /lp track \
clone\
日志 (/lp log …)
- /lp log
recent[user] [page] - /lp log
search\ [page] - /lp log
notify[on|off] - /lp log
export\ - /lp log
userhistory\ [page] - /lp log
grouphistory\ [page] - /lp log
trackhistory\ [page]
命令细节
基础
/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 \ …)
/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 \ …)
/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 \ permission … | /lp 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 \ parent … | /lp 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 \ meta … | /lp 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 \ …)
/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
Group Manager
| Group Manager 命令 | LuckPerms 命令 |
|---|---|
| manuadd \<玩家> \<组> | lp user \<玩家> parent set \<组> |
| manudel \<玩家> | lp user \<玩家> clear |
| manuaddsub \<玩家> \<组> | lp user \<玩家> parent add \<组> |
| manudelsub \<玩家> \<组> | lp user \<玩家> parent remove \<组> |
| manpromote \<玩家> \<组> | lp user \<玩家> promote \ |
| mandemote \<玩家> \<组> | lp user \<玩家> demote \ |
| manwhois \<玩家> | lp user \<玩家> info |
| manuaddp \<玩家> \<权限> | lp user \<玩家> permission set \<权限> true |
| manudelp \<玩家> \<权限> | lp user \<玩家> permission unset \<权限> |
| manulistp \<玩家> | lp user \<玩家> permission info |
| manucheckp \<玩家> \<权限> | lp user \<玩家> haspermission \<权限> |
| manuaddv \<玩家> prefix \<值> | lp user \<玩家> meta addprefix \<优先级> \<值> |
| manuaddv \<玩家> suffix \<值> | lp user \<玩家> meta addsuffix \<优先级> \<值> |
| manuaddv \<玩家> \<变量> \<值> | lp user \<玩家> meta set \<变量> \<值> |
| manudelv \<玩家> \<变量> | lp user \<玩家> meta unset \<变量> |
| manulistv \<玩家> | lp user \<玩家> meta info |
| mangadd \<组> | lp creategroup \<组> |
| mangdel \<组> | lp deletegroup \<组> |
| mangaddi \<组1> \<组2> | lp group \<组1> parent add \<组2> |
| mangdeli \<组1> \<组2> | lp group \<组1> parent remove \<组2> |
| listgroups | lp listgroups |
| mangaddp \<组> \<权限> | lp group \<组> permission set \<权限> true |
| mangdelp \<组> \<权限> | lp group \<组> permission unset \<权限> |
| manglistp \<组> | lp group \<组> permission info |
| mangcheckp \<组> \<权限> | lp group \<组> haspermission \<权限> |
| mangaddv \<玩家> prefix \<值> | lp group \<组> meta addprefix \<优先级> \<值> |
| mangaddv \<玩家> suffix \<值> | lp group \<组> meta addsuffix \<优先级> \<值> |
| mangaddv \<玩家> \<变量> \<值> | lp group \<组> meta set \<变量> \<值> |
| mangdelv \<玩家> \<变量> | lp group \<组> meta unset \<变量> |
| manglistv \<玩家> | lp group \<组> meta info |
| mansave | lp sync |
| manload | lp sync |
PermissionsEx
| PermissionsEx 命令 | LuckPerms 命令 |
|---|---|
| pex | lp |
| pex reload | lp sync |
| pex toggle debug | lp verbose true |
| pex user \<用户> check \<权限> | lp user \<用户> haspermission \<权限> |
| pex backend | lp info |
| pex import \ | lp export \ / lp import \ |
| pex set default group \<组> | (in the config file) |
| pex user \<用户> list | lp user \<用户> permission info |
| pex user \<用户> prefix | lp user \<用户> meta info |
| pex user \<用户> prefix \<前缀> | lp user \<用户> meta addprefix \<优先级> \<前缀> |
| pex user \<用户> suffix | lp user \<用户> meta info |
| pex user \<用户> suffix \<后缀> | lp user \<用户> meta addsuffix \<优先级> \<后缀> |
| pex user \<用户> delete | lp user \<用户> clear |
| pex user \<用户> add \<权限> \<世界> | lp user \<用户> permission set \<权限> true global \<世界> |
| pex user \<用户> remove \<权限> \<世界> | lp user \<用户> permission unset \<权限> global \<世界> |
| pex user \<用户> timed add \<权限> \<时间> \<世界> | lp user \<用户> permission settemp \<权限> true \<时间> global \<世界> |
| pex user \<用户> timed remove \<权限> \<时间> \<世界> | lp user \<用户> permission settemp \<权限> true \<时间> global \<世界> |
| pex user \<用户> set \ \<值> \<世界> | lp user \<用户> meta set \ \<值> global \<世界> |
| pex user \<用户> group list | lp user \<用户> parent info |
| pex user \<用户> group add \<组> \<世界> | lp user \<用户> parent add \<组> global \<世界> |
| pex user \<用户> group add \<组> \<世界> \<时间> | lp user \<用户> parent addtemp \<组> \<时间> global \<世界> |
| pex user \<用户> group set \<组> | lp user \<用户> parent set \<组> |
| pex user \<用户> group remove \<组> \<世界> | lp user \<用户> parent remove \<组> global \<世界> |
| pex groups list | lp listgroups |
| pex group \<组> list | lp group \<组> permission info |
| pex group \<组> prefix | lp group \<组> meta info |
| pex group \<组> prefix \<前缀> | lp group \<组> meta addprefix \<优先级> \<前缀> |
| pex group \<组> suffix | lp group \<组> meta info |
| pex group \<组> suffix \<后缀> | lp group \<组> meta addsuffix \<优先级> \<后缀> |
| pex group \<组> create | lp creategroup \<组> |
| pex group \<组> delete | lp deletegroup \<组> |
| pex group \<组> parents list | lp group \<组> parent info |
| pex group \<组> parents set \ | lp group \<组> parent add \ |
| pex group \<组> add \<权限> \<世界> | lp group \<组> permission set \<权限> true global \<世界> |
| pex group \<组> remove \<权限> \<世界> | lp group \<组> permission unset \<权限> global \<世界> |
| pex group \<组> timed add \<权限> \<时间> \<世界> | lp group \<组> permission settemp \<权限> true \<时间> global \<世界> |
| pex group \<组> timed remove \<权限> \<时间> \<世界> | lp group \<组> permission settemp \<权限> true \<时间> global \<世界> |
| pex group \<组> set \ \<值> \<世界> | lp group \<组> meta set \ \<值> global \<世界> |
| pex group \<组> user add \<用户> | lp user \<用户> parent add \<组> |
| pex group \<组> user remove \<用户> | lp user \<用户> parent remove \<组> |
| pex promote \<用户> \ | lp user \<用户> promote \ |
| pex demote \<用户> \ | lp user \<用户> demote \ |
虽然其他一些插件也提供了一些相似的功能,LuckPerms 插件拥有它自己独特的权限组路线系统。
请将“权限组路线”试做一种“梯子”或“晋升路线”。
示例 1
我创建了一个叫做“staff”的权限组路线,这权限树包括以下组:
default :arrow_right: helper :arrow_right: mod :arrow_right: admin
然后我就能使用权限组路线来为玩家升级或降级。
例如,玩家“Notch”在helper权限组里,我想将他升到“mod”组,我需要运行
/luckperms user Notch promote staff
示例 2
我又为赞助商新建了一个权限组路线,包括以下组:
default :arrow_right: iron :arrow_right: gold :arrow_right: diamond
当玩家购买了“权限组提升”这类的东西时,我能使用权限组路线为玩家晋升权限等级。
/luckperms user Luck promote donator
要想让玩家在某条权限组路线中降级的话,请使用降级命令。
创建权限组路线
请运行 /luckperms createtrack <name> 命令,然后使用 /luckperms track <name> append <group> 来将权限组加入路线中。
帮助编辑路线的命令也还有几条,你可以在命令使用页面找到。
简介:
LuckPerm总体来说虽然是相对简单的.. 你可以利用插件的一些特点与内部规则来制定一个适合你服务器情况的高等权限系统!
分服务器权限&分世界权限:
LuckPerm本来是针对群组服的情况来工作的, 但是你可以自定义一些只在特定子服/特定世界才生效的权限。
配置中一些重要的选项说明:
# The name of the server, used for server specific permissions. Set to 'global' to disable.
server: global
该项为设置服务器的名称,如果要想设置特定服务器的权限,则需要通过修改server项来命名服务器。 如果你愿意,同一个群组服是可以一起使用相同的服务器名的。
# If users on this server should have their global permissions/groups applied.
include-global: true
include-global选项也是非常重要的。
LuckPerm有两种体现方式,一是特定服务器的权限,二则是直接应用全局权限设置。
如果这个选项被设置为 false,只有指定在此服务器的权限才会被应用。
如果上方的 “server” 选项设置为 global,请不要将其设置为 false。更多的有关服务器指定的权限可以在这里找到。 通过编辑更改这两个选项,你可以灵活的为每个服务器的权限组/权限做出意想不到的配合效果
示例
示例 1
server: global
include-global: true
- /luckperms user Luck set minecraft.command.gamemode true 将应用
- /luckperms user Luck set minecraft.command.gamemode true factions 不应用
示例 2
server: lobby
include-global: true
- /luckperms user Luck set minecraft.command.gamemode true 将应用
- /luckperms user Luck set minecraft.command.gamemode true lobby 将应用
示例 3
server: bungeecord
include-global: false
- /luckperms user Luck set minecraft.command.gamemode true 不应用
- /luckperms user Luck set bungeecord.command.alert true bungeecord 将应用
示例 4
server: global
include-global: false
没有任何权限将会应用!
如果没有设置服务器名字(server项设置为global)且全局设置未开启(include-global项设置为flase), 将不会有任何权限可以应用到服务器上!
权限计算
权限是根据优先级进行计算的,如下所示
- 服务器特定的权限是会覆盖通用/全局权限设置的
例如:有一个玩家,我们姑且叫他海螺,他拥有一个全局的“fly.use”(允许飞行)权限, 然后在“factions”这个服务器上,取消了“fly.use”权限,服务器的特定权限设置将会覆盖全局设置。 即,这个海螺在“factions”服务器上是无法使用“fly.use”权限的,他就不能够上天了, 前提是海螺现在正在“factions”服务器上。
- 世界特定的权限也是会覆盖通用/全局权限设置的
例如:上文我们说的玩家“海螺”,他现在任然有一个全局的“fly.use”权限, 然后在“world_nether”(地狱)世界,取消了“fly.use”权限,世界的特定权限设置将会覆盖全局设置。 即,这个海螺在地狱就无法上天了(只要海螺在地狱世界)。
- 临时权限将会覆盖非临时权限
例如:如果玩家海螺本来关闭了一个权限“test.node”, 以此为基础,服务器给海螺设置新的临时权限“test.node”, 海螺的临时权限则会覆盖本身关闭的权限,即海螺会在特定时间(临时权限)获得“test.node”权限。
- 如果同时有两个节点相同、但时长不同的临时权限,时间较长的会覆盖时间较短的
- 更加具体的通配符权限将覆盖不具体的通配符权限
例如:一个用户拥有权限“luckperms.”并且设置为true,但是“luckperms.user.”权限却设置为false, 那么所有玩家的权限都将被设置为false! 因为尽管“luckperm.”有更加通用的通配符,但是他没有“luckperms.user.”具体。
- 继承权限将由对象自己的权限来重写
例如:一个玩家是默认权限组的成员,默认权限组有“some.thing.perm”权限, 但是这个玩家又被以用户形式给予了权限“some.thing.perm”, 继承而来的权限将会被玩家自己的权限给覆盖。
临时权限
临时权限每间隔3s会检查一遍,检查临时权限的时限是否到期, 不论同步间隔设置的怎么样,这个检查都会照常工作,这意味着你可以安全的设置临时权限在几秒后过期, 他们将会在时限到期时被删除。
速记权限
LuckPerms有他自己的速记权限系统,在这一点上,它非常类似PermissionsEx, 它允许你使用速记格式来设置权限。
示例
示例 1
使用LuckPerm的允许节点来作为例子,比如说,你想让一个用户组与用户权限设置/取消允许节点,
如果没有速记,你就必须键入下面四个节点。
luckperms.user.setpermission
luckperms.user.unsetpermission
luckperms.group.setpermission
luckperms.group.unsetpermission
但是,你要是使用速记,你就可以应用以下节点:
luckperms.(user|group).(setpermission|unsetpermission)
你可以使用括号来让一个节点成为一个速记的权限组,然后用 | 来分隔他们
示例 2
你可以使用“-”来创建字符范围,如果没有使用速记,则必须键入以下四个节点:
coolkits.kit.a
coolkits.kit.b
coolkits.kit.c
coolkits.kit.d
然而,使用了速记方法,你只需应用下面的节点:
coolkits.kit.(a-d)
示例 3
你可以使用“-”来创建字符范围,如果没有使用速记,则必须键入以下四个节点:
prisonmines.teleport.1
prisonmines.teleport.2
prisonmines.teleport.3
prisonmines.teleport.4
不过,你只要使用速记方法,这一切都会变得简单许多!你只需要应用下面的节点:
prisonmines.teleport.(1-4)
正则表达式
LuckPerms支持使用正则表达式来定义权限节点与服务器/世界的名字, 当使用正则表达式的时候,必须添加前缀“R=”。 所以LuckPerm才会知道将它是作为正则表达式来输出,而不是作为普通的字符串来输出。
例如:你希望玩家可以创建两个组与权限系(tracks),通常只需要添加两个权限节点。 然而使用正则表达式,你只需要添加一个权限节点 luckperms\.create.* 。 记住,转为任何字符,例如一个点,都将作为一个节点被系统解析。
我在 LuckPerms 里处理默认和默认组的方法可能是整个插件里最不受喜爱的特性了。最新我做了一些添加/调整,做了一些替代的特性,允许最大程度的控制像其他权限插件的方法,希望这会成为插件最好的方面,而不是最差的方面。
从何开始
这是我的想法。
你的服务器的用户可以分为两种。
- 基础玩家
- 加入不同的组的玩家,或者有他们特别权限的玩家。
你不希望浪费宝贵的硬盘空间来存储第一种玩家,你只希望存储你的职员,或者有特殊等级的玩家。平凡的”成员”就只是平凡,没有必要存储他们的信息。
下一个问题是如何确定一个用户是”平凡的”或不是,想象一下情景。
- 默认的组设置为”默认”,当玩家加入,他们被设置为”默认”,并被保存。
- 过了一会儿,你想将默认的组更改为”成员”。
- 接着你的老的成员全部在”默认”组里,剩下的人都在”成员”,这不好。
甚至我们没有”平凡”的用户,这个问题依然会出现。
- 默认组设置为”默认”
- 你想给 “Notch” 一个特殊的 “essentials.fly” 权限,Notch 的权限被保存,标记为”默认组”的成员,有特殊的飞行权限。
- 接着你编辑了默认的组,所有的”平凡的”成员全部进入了新的组,但是 Notch 还是默认组的。
因为这个原因,我让默认的组不可配置,这让所有对我的事情都简单了 10 倍,这意味着我可以写有效率的存储系统,并且不用担心一些稀有的情况下服务器的管理员更改了默认组,但是,我知道这对一些人很反感。
这对一些等级插件也有问题,如果你想要一个”主”组,并且分离”升级”组,你需要多于一个的默认组。
这里是你的选项。
继续使用默认组,但是只是更改”显示名”
我非常推荐这个做法,因为你继续使用默认组。
如果你只是想简单的更改默认组的显示名,(比如在 Vault),我推荐你配置一个 group-name-rewrite 规则,通过添加这些到你的 config.yml/luckperms.conf 来实现。
# Rewrites group names. The underlying name of the group does not change, just the output in commands / placeholders / Vault.
group-name-rewrite:
default: Member
你也可以使用这个:https://github.com/lucko/LuckPerms/wiki/Primary-Groups
配置继承
这个选项意味着所有的用户都还在”默认”的组里,但是这个默认组作为父组,这样他就可以将配置继承给不同的组。
/luckperms creategroup member
/luckperms group default parents add member
配置默认分配
如果你有更多的特殊需要,你可以使用这个选项,但是,这将否定我们在这个页面的第一节讨论的存储空间规划,所有的用户都会被存储,无论是”平凡的”成员还是不是。
注意:查看 “Default Assignments” 章节
接下来的规则将会创建一个不同的默认的组。
default-assignments:
my-defaults-rule:
if:
has-true: <group.default>
take:
- group.default
give:
- group.member
set-primary-group: member
放入以后,每次玩家登入时,插件会检测这个玩家是不是”默认”组的成员,如果是,插件将会把玩家从”默认”组移除,将他们添加至”成员”组,将他们的主组也设置为”成员”组。
这个系统非常强力,允许你配置按你自己的需求而定的默认组,记住你可以将玩家添加至不止一个的”默认”组。