跳到主要内容

权限

CloudHologram 的权限分两种,不要搞混:

种类作用怎么设定
指令权限谁可以执行 /clh … 指令(建立、修改看板)权限插件(例如 LuckPerms)给玩家或群组节点,见本页前半
观看权限谁看得到某个看板或某一行看板或行的 permission 设定,见 观看权限

只想让管理员用全部指令,给一个节点就够了:

/lp group admin permission set cloudhologram.admin true

OP 默认就有全部指令权限,不用另外设定。

权限是怎么检查的​

先搞懂这 5 条规则,后面的表就很好读:

  1. dh.admin 通吃。有 dh.admin(或包含它的 cloudhologram.admin)的人,执行任何指令都跳过权限检查。

  2. 一层一层检查。执行 /clh hologram create 时,插件依序检查:

    • 主指令 /clh:要有 dh.default 或 dh.command.decentholograms(dh.default 默认所有人都有,所以这层通常不用管);
    • 群组 hologram:要有 dh.command.holograms;
    • 子指令 create:要有 dh.command.holograms.create。

    三层都要通过。只给 dh.command.holograms.create 的玩家,打 /clh hologram create 会在第二层被挡下。

  3. 群组节点包含底下全部子节点。例如 dh.command.holograms 已经包含 dh.command.holograms.create、.delete 等全部看板指令。想「给一个群组、但禁止其中几个」,就给群组节点再把不要的设为 false(见 LuckPerms 范例)。

  4. 主指令底下的快捷指令只检查自己的节点。/clh create、/clh delete 这类直接挂在 /clh 底下的快捷写法(列表见 看板),以及 快捷指令 的 click、style 等,只需要通过第 1 层与自己的节点,不需要群组节点。

  5. 默认值:除了 dh.default 是「所有人」,其他节点都是「OP」。每个指令检查的节点都在 plugin.yml 宣告过,所以都会被上一层的群组节点带出来。

另外:

  • 没有 dh.admin 的玩家打 /clh(不加子指令)只会看到版本资讯;有 dh.admin 才会提示使用帮助指令。
  • 控制台拥有全部权限。

总权限​

权限默认包含说明
cloudhologram.adminOPdh.adminCloudHologram 全部管理权限。建议给管理员这一个就好
dh.adminOPdh.commandDecentHolograms 原本的管理节点,直接沿用。有它就跳过所有指令权限检查(规则 1)
dh.commandOP下面全部「主指令」节点与 6 个群组节点(看板、行、页、功能、Display、性能分析)全部指令
dh.default所有人dh.command.decentholograms、dh.command.version能打 /clh 看版本资讯、用 /clh version

包含关系:

cloudhologram.admin
└─ dh.admin(跳过全部检查)
└─ dh.command
├─ dh.command.decentholograms / version / reload / list / help / convert
├─ dh.command.holograms → 全部看板指令
├─ dh.command.lines → 全部行指令
├─ dh.command.pages → 全部页指令
├─ dh.command.features → 全部功能指令
├─ dh.command.displays → 全部 Display 指令
└─ dh.command.profiler → 全部性能分析指令

主指令​

权限默认指令
dh.command.decentholograms所有人(经 dh.default)/clh(主指令本身,没有它就什么子指令都用不了)
dh.command.version所有人(经 dh.default)/clh version(别名 ver、about)
dh.command.reloadOP/clh reload、/clh validate
dh.command.listOP/clh list [页码]
dh.command.helpOP/clh help
dh.command.convertOP/clh convert <插件> [文件]

指令说明见 其他指令。

看板​

群组节点:dh.command.holograms(OP),包含下表全部。指令说明见 看板指令。

权限指令也能用的快捷写法
dh.command.holograms.create/clh hologram create/clh create
dh.command.holograms.delete/clh hologram delete/clh delete
dh.command.holograms.clone/clh hologram clone/clh clone
dh.command.holograms.rename/clh hologram rename
dh.command.holograms.enable/clh hologram enable/clh enable
dh.command.holograms.disable/clh hologram disable/clh disable
dh.command.holograms.move/clh hologram move/clh move
dh.command.holograms.movehere/clh hologram movehere/clh movehere
dh.command.holograms.center/clh hologram center/clh center
dh.command.holograms.align/clh hologram align/clh align
dh.command.holograms.teleport/clh hologram teleport/clh teleport
dh.command.holograms.near/clh hologram near/clh near
dh.command.holograms.info/clh hologram info/clh info
dh.command.holograms.lines/clh hologram lines
dh.command.holograms.update/clh hologram update/clh style 也用这个节点
dh.command.holograms.setfacing/clh hologram setfacing
dh.command.holograms.setdisplayrange/clh hologram setdisplayrange
dh.command.holograms.setupdaterange/clh hologram setupdaterange
dh.command.holograms.setupdateinterval/clh hologram setupdateinterval
dh.command.holograms.downorigin/clh hologram downorigin
dh.command.holograms.setpermission/clh hologram setpermission
dh.command.holograms.addflag/clh hologram addflag
dh.command.holograms.removeflag/clh hologram removeflag
dh.command.holograms.help/clh hologram help

全部默认 OP。「快捷写法」那一栏的指令只检查自己的节点,不需要 dh.command.holograms(规则 4)。

行​

群组节点:dh.command.lines(OP),包含下表全部。指令说明见 行指令。

权限指令
dh.command.lines.add/clh line add
dh.command.lines.insert/clh line insert
dh.command.lines.set/clh line set,以及快捷指令 /clh setline
dh.command.lines.edit/clh line edit
dh.command.lines.remove/clh line remove
dh.command.lines.swap/clh line swap
dh.command.lines.align/clh line align
dh.command.lines.height/clh line height
dh.command.lines.offsetx/clh line offsetx
dh.command.lines.offsetz/clh line offsetz
dh.command.lines.setfacing/clh line setfacing
dh.command.lines.setpermission/clh line setpermission
dh.command.lines.addflag/clh line addflag
dh.command.lines.removeflag/clh line removeflag
dh.command.lines.info/clh line info
dh.command.lines.help/clh line help

全部默认 OP。

页​

群组节点:dh.command.pages(OP)。指令说明见 页指令。

权限指令备注
dh.command.pages.add/clh page add,以及快捷指令 /clh addpage
dh.command.pages.insert/clh page insert
dh.command.pages.remove/clh page remove
dh.command.pages.swap/clh page swap
dh.command.pages.switch/clh page switch后面指定别的玩家时还要有 dh.admin
dh.command.pages.actions/clh page actions
dh.command.pages.addaction/clh page addaction,以及快捷指令 /clh click、/clh clickadd
dh.command.pages.clearactions/clh page clearactions,以及快捷指令 /clh clickclear
dh.command.pages.removeaction/clh page removeaction
dh.command.pages.help/clh page help

全部默认 OP。

功能​

群组节点:dh.command.features(OP),包含下表全部。指令说明见 其他指令。

权限指令
dh.command.features.list/clh feature list
dh.command.features.info/clh feature info <功能>
dh.command.features.enable/clh feature enable <功能>
dh.command.features.disable/clh feature disable <功能>
dh.command.features.reload/clh feature reload <功能>
dh.command.features.help/clh feature help

全部默认 OP。

Display​

群组节点:dh.command.displays(OP),包含下表全部。只有 1.19.4 以上的服务器才有这组指令,说明见 Display 指令。

权限指令
dh.command.displays.create/clh d create
dh.command.displays.delete/clh d delete
dh.command.displays.list/clh d list
dh.command.displays.nearby/clh d nearby
dh.command.displays.teleport/clh d teleport
dh.command.displays.move/clh d move
dh.command.displays.movehere/clh d movehere
dh.command.displays.center/clh d center
dh.command.displays.facing/clh d set-facing
dh.command.displays.rename/clh d rename
dh.command.displays.clone/clh d clone
dh.command.displays.enable/clh d enable
dh.command.displays.disable/clh d disable
dh.command.displays.displayrange/clh d display-range
dh.command.displays.updateinterval/clh d update-interval
dh.command.displays.attribute/clh d attribute
dh.command.displays.resetattribute/clh d reset-attribute
dh.command.displays.listattributes/clh d list-attributes
dh.command.displays.setblock/clh d set-block
dh.command.displays.setitem/clh d set-item
dh.command.displays.text.addline/clh d addline
dh.command.displays.text.insertline/clh d insertline
dh.command.displays.text.removeline/clh d removeline
dh.command.displays.text.setline/clh d setline
dh.command.displays.text.swaplines/clh d swap-lines
dh.command.displays.help/clh d help

全部默认 OP。Display 没有快捷写法,一定要同时有 dh.command.displays(规则 2)。

plugin.yml 里这几个节点的说明文字写的是 add-line、insert-line、remove-line、set-line,但实际指令是 addline、insertline、removeline、setline(没有短横线);节点名称本身没有问题。

性能分析​

群组节点:dh.command.profiler(OP),包含下表全部,本身也包含在 dh.command 里。指令说明见 其他指令。

权限指令
dh.command.profiler.start/clh profiler start
dh.command.profiler.stop/clh profiler stop
dh.command.profiler.reset/clh profiler reset [计时器]
dh.command.profiler.stats/clh profiler stats [计时器]
dh.command.profiler.help/clh profiler help

全部默认 OP。

观看权限​

看板和看板里的每一行都可以设一个 permission:玩家有这个权限才看得到,没有就完全看不到(也点不到)。 这和上面的指令权限是两回事,节点名称自己取,例如 server.vip、holo.event。

对象指令文件写法
整个看板/clh hologram setpermission <看板> [权限]最外层写 permission: server.vip
某一行/clh line setpermission <看板> <页> <行> [权限]那一行写 permission: server.vip
  • 不写 [权限] 就是移除观看权限,所有人都看得到。
  • 两层可以同时设:玩家要先看得到看板,才轮得到判断每一行。
  • 看不到的行会直接消失,下面的行不会往上补位(会留下空隙),想要紧凑的排版可以把同一组内容做成不同看板或不同页。
  • OP 看得到全部:自己取的节点没有任何插件宣告时,Bukkit 默认 OP 拥有。测试时请用非 OP 的帐号。
  • 只是「看不到」,不会阻止玩家用其他方式触发指令。点击动作要限制权限,请在动作开头放 permission:,见 快捷指令 → 动作写法。
  • Display 没有观看权限。

文件写法:

location: world:0.5:100:0.5
permission: server.vip # 整个看板只有 VIP 看得到
pages:
- lines:
- '&6VIP 专属区'
- content: '&c管理员备注:本周活动未开放'
permission: server.staff # 这一行只有管理员看得到

LuckPerms 范例​

以下用 LuckPerms 指令示范,其他权限插件概念相同。

管理员:全部权限​

/lp group admin permission set cloudhologram.admin true

建筑组:能编辑看板,但不能删除​

/lp group builder permission set dh.command.holograms true
/lp group builder permission set dh.command.lines true
/lp group builder permission set dh.command.pages true
/lp group builder permission set dh.command.holograms.delete false

群组节点会带出全部子节点,再用 false 把 delete 关掉(/clh hologram delete 与 /clh delete 都会被挡)。dh.command.pages 已经包含设定点击动作的 /clh page addaction、/clh click,不用另外加。

只开放少数指令​

只想让某人能建立和移动看板,不给群组节点,改用快捷写法:

/lp user Steve permission set dh.command.holograms.create true
/lp user Steve permission set dh.command.holograms.movehere true

Steve 可以用 /clh create、/clh movehere,但打 /clh hologram create 会被挡(缺 dh.command.holograms,规则 2)。

活动人员:只能编辑 Display​

/lp group event permission set dh.command.displays true
/lp group event permission set dh.command.displays.delete false

看板只给 VIP 看​

/clh hologram setpermission vip_lounge server.vip
/lp group vip permission set server.vip true

看板只给「不是 VIP」的人看(例如购买广告)​

权限只能判断「有」,不能直接判断「没有」。做法是另外取一个节点,默认群组给 true、VIP 群组设成 false:

/clh hologram setpermission buy_vip_ad server.show-ad
/lp group default permission set server.show-ad true
/lp group vip permission set server.show-ad false

VIP 群组继承 default 时,自己的 false 会盖过继承来的 true,所以 VIP 看不到广告。

检查玩家有没有某个权限​

/lp user Steve permission check dh.command.holograms.create
权限没生效?
  • 先确认玩家不是 OP(OP 什么都有,测不出效果)。
  • 用 /lp user <玩家> permission check <节点> 看结果是不是 true。
  • 用群组节点时,确认 LuckPerms 的 apply-bukkit-child-permissions 没有被关掉(默认开启),否则 dh.command.holograms 不会带出子节点。