图标与子图标
设置图标外观、点击动作、状态切换与刷新。
图标配置
写在面板的 icons 中:
# 放在某个面板的 icons 下
A:
material: PAPER
name: '&f说明'
lore:
- '&7点击查看消息'
action: "mmsg '&a你好'"字段
| 字段 | 类型 | 必填 | 默认行为 | 说明 |
|---|---|---|---|---|
id(key) | 文字 | 否 | 使用 icons 中的键 | 图标 ID,用于布局与指定图标操作 |
display | 显示属性对象 | 否 | 使用直接写在图标下的外观字段 | 集中设置外观,见物品属性 |
action(actions、handler、click) | 动作或动作列表 | 否 | 无点击动作 | 子图标可继承父动作;写法见点击动作 |
sub(icons) | 子图标列表 | 否 | 无子图标 | 按配置顺序选择首个条件满足的子图标 |
condition(if、rule) | 条件语句文本 | 否 | 不选中该子图标 | 用于子图标选择,不是顶层图标的隐藏开关 |
inherit | 布尔值 | 否 | true | 子图标是否继承父图标未填写的外观、动画与动作 |
update | 整数 | 否 | -1,不自动更新 | 外观更新间隔,单位 tick;正数启用,不重新选择子图标 |
relocate | 整数 | 否 | -1,不自动选择 | 子图标选择间隔,单位 tick;正数启用,不移动槽位 |
frames | 显示属性对象列表 | 否 | 无动画;子图标可继承 | 图标动画帧,见动画配置 |
frames-prop(framesProperties、frames-properties、prop) | 动画设置对象 | 否 | 间隔 20 tick,模式 LOOP;子图标可继承 | 默认动画间隔与播放模式 |
根据状态切换图标
A:
material: GRAY_DYE
name: '&7尚未开启'
action: 'ctx set enabled to true icon refresh'
sub:
- if: 'ctx get enabled'
material: LIME_DYE
name: '&a已开启'
action: 'ctx del enabled icon refresh'未开启时显示灰色染料;点击后设置 enabled,刷新为绿色状态。再次点击删除该值,恢复灰色状态。
子图标只需填写变化的字段,并设置 condition(或 if、rule)。未设置条件的子图标不会被选中;多个条件满足时使用列表中的第一个。inherit: false 取消继承父图标。
刷新语句
| 语句 | 作用 |
|---|---|
icon update | 更新当前图标的名称、Lore 等外观 |
icon relocate | 重新判断当前图标使用哪个子状态 |
icon refresh | 重新选择子状态并更新外观 |
icon by 'A' refresh | 刷新指定 ID 的图标 |
icons update | 更新现有图标的名称、Lore、数量等显示,保留生成器当前页 |
icons relocate | 重新选择现有图标的子状态,保留生成器当前页 |
icons refresh | 更新普通面板的图标;生成器列表重建并回到第一页 |
icon by 按 ID 在当前或选定面板中查找;跨面板时先使用 panel at 选择目标。变量修改后,在修改动作末尾执行相应刷新。需要周期更新时设置 update 或 relocate。
生成器的固定导航用 icon by 单独刷新,保留当前页;icons refresh 不自动重选这些固定图标的子状态。用法见生成器面板。
更新文字与选中状态
文字或数量变化,只更新显示:
action: |-
ctx set status to done
icons update变量影响 sub 条件时,先重新选择状态,再更新显示:
action: |-
ctx set enabled to true
icons relocate
icons updaterelocate 不是移动槽位,而是重新判断使用哪个子图标。只需要更新点击的按钮时,用 icon refresh;需要更新多个按钮时,用上面的组合。
周期更新
A:
material: PAPER
update: 20
name: '&f状态:{{ctx get status}}'update: 20 每 20 tick 重新计算外观,20 TPS 时约一秒。它不重新选择 sub;条件变化需要 relocate,或在改变变量的动作后主动刷新。
权限按钮
展示状态使用 sub,点击时的权限判断写在 action 中。完整配置见权限按钮。
最后更新于