Skip to content
iPlugin

权限按钮

完成未解锁、已解锁、点击时复查权限与帮助页关闭的闭环。

做完会得到什么

无 invero.vip 权限时,中央按钮是灰色染料,点击提示所需权限;有权限时,显示绿宝石,点击进入 VIP 帮助。显示与执行分别判断权限,权限在菜单打开后变化也不会直接绕过点击检查。

permission-demo.yml配置效果示意 · 非游戏截图
图示状态没有权限
窗口槽位 4窗口坐标 4x0面板局部坐标 4x0字符 V

同一个槽位根据 invero.vip 权限显示未解锁或可用状态。

1. 放置成套文件

permission-demo.yml · 权限按钮
permission-help.yml · 跳转目标

成套下载 permission-example.zip并解压到上面的目录。也可分别下载 permission-demo.yml 和 permission-help.yml。两个完整文件如下,各保存一次即可。

plugins/Invero/workspace/permission-demo.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
  1. 以没有该权限的玩家打开,确认灰色染料与未解锁提示。
  2. 用服务器已有的权限管理方式授予该玩家 invero.vip,重新打开,确认绿宝石。
  3. 点击绿宝石进入 permission-help,再点击屏障关闭。帮助菜单不依赖 hub 或其他示例。
  4. 若在菜单保持打开时撤销权限,旧绿宝石仍可能显示;点击会进入 else 提示,不应打开帮助页。

权限改变不会自动重选这个按钮。需要保持窗口并更新状态时,在有当前会话的动作中执行:

icon by 'V' refresh

它重新选子图标并更新外观。批量场景使用 icons relocate 后 icons update,保留生成器当前页;不要为了一个按钮改用会重建列表的 icons refresh。完整的子图标字段见图标,动作分支字段见条件动作。

Last updated on