跳到主要内容

解锁权限

在天赋节点、技能、职业里写 permissions:,玩家有它的时候才拥有这些权限。重置天赋、重置技能、转职之后,权限会自动收回。

常见用法:学会某个天赋节点,才能在 云物品 的锻造站做某件武器。

不需要 LuckPerms 指令

权限由星月天职直接挂在玩家身上,不会写进 LuckPerms。所以不会有「重置后权限还留着」的问题。 其他插件用 player.hasPermission(...) 检查时,马上就查得到,例如云物品配方的 权限:、指令权限、选单条件。

范例:武器商学会天赋才能做铁丝球棒​

1. 天赋节点写上权限

plugins/StarVocation/skill-trees/武器商天赋.yml
name: '&6武器商天赋'
item: ANVIL
nodes:
铁丝球棒:
name: '&e铁丝球棒'
coordinates: {x: 0, y: 0}
root: true
max-level: 3
icon: STICK
lore:
- '&7学会后可以在武器商锻造铁丝球棒'
permissions:
- clouditems.recipe.wire_bat # 学会(1 级)就拥有
level-permissions:
3: [clouditems.recipe.wire_bat_plus] # 3 级起才拥有

2. 职业使用这棵天赋树

plugins/StarVocation/classes/武器商.yml
skill-trees: [武器商天赋]

3. 云物品锻造配方检查同一个权限

plugins/CloudItems/crafting-stations/武器商.yml
站别: 锻造站
名称: '&3武器商'
成品列表:
铁丝球棒:
物品: 原版:IRON_SWORD
名称: '&b铁丝球棒'
材料表: '原版:STICKx1'
权限: clouditems.recipe.wire_bat

完成后的流程:

  • 没学节点时,锻造会显示「没有此配方使用权限」。
  • 学会节点后,就可以锻造。
  • 重置天赋或转职后,又不能锻造了。

可以写在哪里​

位置什么时候拥有level-permissions 看的等级
天赋节点(skill-trees/*.yml 的 nodes.<节点>)学会这个节点(1 级以上)节点等级
技能文件(skills/**.yml)技能可以使用:已解锁,且职业等级达到技能的 level技能等级
职业的技能(职业文件 skills.<技能>)同上,只对这个职业有效技能等级
职业文件(classes/*.yml)目前是这个职业职业等级
技能文件
name: '&e打造'
mythiclib-skill: LEAP
permissions: [myserver.forge]
level-permissions:
5: [myserver.forge.master] # 技能 5 级起
职业文件
permissions: [myserver.weaponsmith]
level-permissions:
20: [myserver.weaponsmith.elite] # 职业 20 级起
skills:
打造:
level: 1
unlocked-by-default: false
permissions: [myserver.weaponsmith.forge] # 只在这个职业解锁打造时拥有
  • permissions 可以写一个,也可以写成列表。
  • 在权限前面加 -,会把这个权限设为 false,例如 '-essentials.fly'。

什么时候收回​

下面这些情况发生后,玩家的权限会马上重新计算,不需要重进服:

  • 天赋:重新分配天赋、/sv admin reset <玩家> trees、/mmocore admin reset skill-trees
  • 技能:技能重新分配(等级回到 1)、锁上技能、/mmocore admin reset skills
  • 职业:转职、转子职业、/sv admin reset <玩家> class|all、/mmocore admin reset classes|levels|all
  • 等级:等级下降后,未达等级的 level-permissions 收回
  • 重载:/sv admin reload 后,按新的设定重新计算
  • 进出服:离线时移除,进服时恢复

查看玩家现在有哪些​

/sv admin perms <玩家>

列出这个玩家现在从星月天职得到的权限。

测试时不要用 OP 帐号

OP 默认拥有所有没有注册过的权限,所以就算没学节点,OP 也做得出来。请用一般玩家帐号测试。

以前用 LuckPerms 指令给权限的服务器​

以前可能在节点奖励里用 lp user {player} permission set ... 给权限。这种权限重置后不会消失。改用 permissions: 之后,请把原本给权限的指令删掉。

已经发出去的旧权限,可以用 reset-commands 在重置或转职时一起收回:

skill-trees/武器商天赋.yml
# 重新分配 / 重置这棵树时,以后台身份执行
reset-commands:
- 'lp user {player} permission unset clouditems.recipe.wire_bat'
classes/武器商.yml
# 离开这个职业(转职、重置职业)时,以后台身份执行
reset-commands:
- 'lp user {player} permission unset clouditems.recipe.wire_bat'

指令里可以用 {player} {uuid} {class_id} 和 PlaceholderAPI 变量。

  • 天赋树的 reset-commands:玩家在这棵树有投入点数时,重新分配或重置才会执行。
  • 职业的 reset-commands:玩家离开这个职业时执行。