我在 LuckPerms 里处理默认和默认组的方法可能是整个插件里最不受喜爱的特性了。最新我做了一些添加/调整,做了一些替代的特性,允许最大程度的控制像其他权限插件的方法,希望这会成为插件最好的方面,而不是最差的方面。

从何开始

这是我的想法。

你的服务器的用户可以分为两种。

  1. 基础玩家
  2. 加入不同的组的玩家,或者有他们特别权限的玩家。

你不希望浪费宝贵的硬盘空间来存储第一种玩家,你只希望存储你的职员,或者有特殊等级的玩家。平凡的"成员"就只是平凡,没有必要存储他们的信息。

下一个问题是如何确定一个用户是"平凡的"或不是,想象一下情景。

  1. 默认的组设置为"默认",当玩家加入,他们被设置为"默认",并被保存。
  2. 过了一会儿,你想将默认的组更改为"成员"。
  3. 接着你的老的成员全部在"默认"组里,剩下的人都在"成员",这不好。

甚至我们没有"平凡"的用户,这个问题依然会出现。

  1. 默认组设置为"默认"
  2. 你想给 "Notch" 一个特殊的 "essentials.fly" 权限,Notch 的权限被保存,标记为"默认组"的成员,有特殊的飞行权限。
  3. 接着你编辑了默认的组,所有的"平凡的"成员全部进入了新的组,但是 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

放入以后,每次玩家登入时,插件会检测这个玩家是不是"默认"组的成员,如果是,插件将会把玩家从"默认"组移除,将他们添加至"成员"组,将他们的主组也设置为"成员"组。

这个系统非常强力,允许你配置按你自己的需求而定的默认组,记住你可以将玩家添加至不止一个的"默认"组。

results matching ""

    No results matching ""