权限按钮
完成未解锁、已解锁、点击时复查权限与帮助页关闭的闭环。
做完会得到什么
无 invero.vip 权限时,中央按钮是灰色染料,点击提示所需权限;有权限时,显示绿宝石,点击进入 VIP 帮助。显示与执行分别判断权限,权限在菜单打开后变化也不会直接绕过点击检查。
图示状态没有权限
VIP 功能(未解锁)
窗口槽位 4窗口坐标 4x0面板局部坐标 4x0字符 V
同一个槽位根据 invero.vip 权限显示未解锁或可用状态。
1. 放置成套文件
permission-demo.yml · 权限按钮
permission-help.yml · 跳转目标
成套下载 permission-example.zip并解压到上面的目录。也可分别下载 permission-demo.yml 和 permission-help.yml。两个完整文件如下,各保存一次即可。
menu:
title: '&8权限按钮'
rows: 1
panels:
- layout:
- ' V '
icons:
V:
material: GRAY_DYE
name: '&7VIP 功能(未解锁)'
action: "mmsg '&c需要 invero.vip 权限'"
sub:
- if: 'perm invero.vip'
material: EMERALD
name: '&aVIP 功能(可用)'
action:
if: 'perm invero.vip'
then: 'menu open permission-help'
else: "mmsg '&c权限已变化,请重新打开菜单'"2. 看懂需要改的两个位置
permission-demo.yml → panels → 第一个面板 → icons.V:父图标的材质、名字和动作是未解锁状态。icons.V.sub的第一项:if决定是否显示绿宝石;其中的action.if在点击时再次检查,满足才menu open permission-help,否则显示权限变化提示。
perm 是通用 Kether 权限判断,语法只查 TabooLib Kether 列表。要换成你自己的权限点,在显示条件、点击条件和提示文字中一起替换 invero.vip。
3. 打开并验证两种状态
/invero menu reload
/invero menu open permission-demo- 以没有该权限的玩家打开,确认灰色染料与未解锁提示。
- 用服务器已有的权限管理方式授予该玩家
invero.vip,重新打开,确认绿宝石。 - 点击绿宝石进入
permission-help,再点击屏障关闭。帮助菜单不依赖hub或其他示例。 - 若在菜单保持打开时撤销权限,旧绿宝石仍可能显示;点击会进入
else提示,不应打开帮助页。
权限改变不会自动重选这个按钮。需要保持窗口并更新状态时,在有当前会话的动作中执行:
icon by 'V' refresh它重新选子图标并更新外观。批量场景使用 icons relocate 后 icons update,保留生成器当前页;不要为了一个按钮改用会重建列表的 icons refresh。完整的子图标字段见图标,动作分支字段见条件动作。
Last updated on