本帖最后由 lengshao233 于 2020-7-27 16:33 编辑

前言:为什么写这篇帖子

最近太多小白服主问关于权限的问题了

一般都先是:大佬们为什么我玩家输入xxx指令会提示没有权限啊,有办法解决吗

我寻思着,没权限不就给权限吗,我通常都会回答:那你就给权限啊

小白服主:权限是什么?

于是就有了这篇帖子


1.什么是权限

权限,顾名思义:是否具备进行这一操作的能力

例如,你要进入服务器,就需要进入服务器的权限

再在现实举个例子,你用国内机子搭建一个网站,那就需要备案

你也可以把自己当作一个机械系统,

例如,你要举起一个杯子,手就需要大脑发配的权限来举起杯子

若手没有权限(也就是大脑不想举起)那你的手就无法举起杯子

再套回minecraft内,在服务器里,任何操作都需要权限

例如,你需要行走,那就需要行走的权限

你要破坏方块,那就需要破坏方块的权限

因此,正如前言说的,

玩家输入xxx指令,需要相对应的权限



2.权限组插件
目前比较老牌的权限管理插件为以下三个

(均为spigot原帖)
此贴接下来主要讲解lp权限组管理插件
lp的功能比另外两个多,所以较为推荐使用



3.lp的基本使用与介绍

首先,要介绍一个东西

权限节点

权限节点以最简单得来说

就是你要进行什么操作时所要拥有的东西

就比如,拿/tpa来举例子,tpa总知道是什么吧

当你输入/tpa xxx时,他会检测你是否拥有这个权限

那么,他如何检测呢?

例如你安装了lp插件,他会通过lp插件检测你是否拥有essentials.tpa权限节点

没错这就是权限节点

一些essentials.vanish,essentials.fly之类的这也是权限节点

在平时添加权限或删除权限时,需要用到权限节点

接下来就是重头戏了

添加权限

lp的权限添加指令为/lp user 玩家 permission set 权限节点 true

就比如我用EasykitsRel插件按宣传贴的教程创建了一个名叫新手礼包的礼包

但玩家没有权限领取,我该如何把权限给玩家呢

第一步,需要寻找相对应的权限节点,既然用的是EasykitsRel插件创建的礼包

那就应该去它的帖子里去寻找相对应的权限节点



所以,玩家领取新手礼包需要的权限为EasyKits.kits.新手礼包

因此,我需要输入指令/lp user 玩家 permission set EasyKits.kits.新手礼包 true

这样就能将礼包的权限给予给玩家了,玩家也可以领取新手礼包了

等等?一条指令只能设置一个玩家,那我岂不是每个玩家都要设置一遍?

有没有简便点的方法?有,那就是涉及权限深处的

权限组系统

权限组的意思是将一堆权限捆绑在一起

这就叫做权限组

然后将权限组用指令给予玩家

这一操作专业术语叫继承权限组

在lp内,继承权限组的指令为/lp user 玩家 parent add 权限组名

创建一个权限组的指令为/lp creategroup 权限组名(自定义)

将权限节点捆绑在权限组里的指令为/lp group 权限组名 permission set 权限 true

小白服主:啊?我现在了解了权限组,但如何一次性将新手礼包的权限给玩家呢

在lp内,有个默认权限组,名叫default,

这个权限组是服务器所有玩家都会继承的权限组

所以,想把新手礼包的权限一次性给予全部玩家,只需要输入

/lp group default permission set EasyKits.kits.新手礼包 true



4.权限高级运用

权限组真正的高级运用在于vip或特殊玩家用户组的运用

下面简单说说vip权限组的运用

创建永久制vip组
首先创建一个vip用户组/lp creategroup vip

然后用/lp group vip permission set 权限 true

比如我可以将飞行隐身权限加进vip用户组

可以输入/lp group vip permission set ssentials.vanish true

/lp group vip permission set ssentials.fly true

然后将玩家继承到vip组里/lp user 玩家 parent add vip

这样,在vip权限组内的玩家即可使用/fly,/v指令

若服务器内存在多个权限组,即可创建多个权限组

如果希望以出售的形式来获取,可以使用cc菜单实现

在cc菜单的执行命令里放上继承权限组的指令即可

创建临时制vip组

这种vip制度一般都是以一个月为限期,

到期则自动回收权限,

那么,权限组可以实现这个功能吗?

在我的认知里,我只知道lp支持临时权限组功能

方法和创建永久制vip组基本一致

但在最后继承权限组时,指令需要用临时权限组的指令

/lp user 玩家 parent addtemp vip 30d

这个指令的意思为:玩家继承vip权限组30天

30d可以换成小时(h)

输入/lp user 玩家 info可以查看拥有的权限组还有多久到期

另外,主要一点,需要延长权限组时间的话

重复上面那条指令是无效的,需要在指令后方加上accumulate

也就是/lp user 玩家 parent addtemp vip 30d accumulate

这条指令的意思为:将玩家的vip权限组到期时间延长30天

若想实现出售,也配合好cc菜单即可



5.后言
所以,看了帖子的应该都懂权限是啥了吧
应该也懂如何给予权限了吧
最后,写教程不易,求评个分