数据存储
这里简单介绍下 LuckPerms 一些可以用在储存数据方面的功能,以及一些简单的案例
权限
实际上,你可以给予用户和组 不存在的(没有被其他插件使用)的权限节点
这些权限有着和其他权限一样的性质
设置权限:
只能按一次的按钮
子图标的 material 改成 air 就可以做点击后消失了
案例(TrMenu):
'A':
display:
material: stone
icons:
- condition: 'perm *nitwikit.demo'
actions:
- 'tell: "你已经按过了!"'
actions:
- 'command inline "lp user {{player name}} permission set nitwikit.demo true" as console'
- 'refresh: A'
升级制vip
'A':
display:
material: stone
update: 20
icons:
- condition: 'perm rank.vip+'
display:
lore: '最顶级vip'
- condition: 'perm rank.vip'
display:
lore: '你是普通玩家,点击花费20金币升级到vip+'
actions:
all:
- 'command inline "lp user {{player name}} permission set rank.vip+ true" as console {condition=check papi %vault_eco_balance% >= 20}'
- condition: 'perm rank.default'
display:
lore: '你是普通玩家,点击花费10金币升级到vip'
actions:
all:
- 'command inline "lp user {{player name}} permission set rank.vip true" as console {condition=check papi %vault_eco_balance% >= 10}'
用权限的好处是适用性广,不过对op不太方便,因为op所有权限都是true嘛
限时权限
过时间后权限自动消失
提示
这里是 settemp 而不是 set
按钮冷却
案例(TrMenu):
'A':
update: 20
display:
material: stone
icons:
- condition: 'perm *nitwikit.demo'
actions:
- 'tell: "正在冷却!还有%luckperms_expiry_time_nitwikit.demo%"'
actions:
- 'command inline "lp user {{player name}} permission settemp nitwikit.demo true 60s" as console'
- 'refresh'
注意
安装 LuckPerms 变量扩展才能正确显示变量
/papi ecloud download LuckPerms
/papi reload
限时vip
除了限时权限,还有限时权限组可以使用
图中执行了三次相同的命令
提示
值得一提的是,如果命令中最后没有加 accumulate ,他会把权限时间重置到你给的数字而不是累加时间
下表来自:此处
模式关键词 | 描述 |
---|---|
accumulate | 新加入的权限时长会叠加在已有的时长之上 |
replace | 保留持续时间最长的权限节点 |
deny | 不接受重复的限时权限节点,若有则拒绝执行命令 |
每日刷新
原理:假如现在是13点,那么距离今天结束就是 24h - 13h = 11h
我给玩家 11h 的限时权限,今日24点一过就是无权限状态,那些判断此权限的东西就变成每日刷新了
实现(kether):
搓命令:
inline "lp user {{sender}} permission settemp nitwikit.demo true {{math 24 - time as HH}}h{{math 60 - time as mm}}m{{math 60 - time as ss}}s"
tell搓出来的看看
执行命令:
command inline "lp user {{sender}} permission settemp nitwikit.demo true {{math 24 - time as HH}}h{{math 60 - time as mm}}m{{math 60 - time as ss}}s" as console
你也可以用 papi 的 server 和 math 两个扩展来做
%math_0_24-{server_time_HH}%
// 时%math_0_60-{server_time_mm}%
// 分%math_0_60-{server_time_ss}%
// 秒
不过我不太喜欢这种做法,另一种: 案例 | 变量|每日刷新
倒计时
和上面每日刷新一个思路