Skip to content
iPlugin

YAML 写法

按菜单层级组织字段,区分列表、对象、文本块与脚本字符串。

本页使用 YAML。菜单文件放在工作空间中;主配置则是 plugins/Invero/config.yml。下面都是配置片段,应合并到说明的节点,而不是单独作为完整菜单加载。文件与菜单 ID 规则见文件目录。

全局节点对象还有一项区别:只使用节点字段及其别名,额外字段会导致该节点无法加载,不按菜单未知字段的忽略方式处理。

缩进与层级

下面使用每层两个空格,表示附魔属于图标 A:

已有面板的 icons 节点
icons:
  A:
    material: PAPER
    enchantments:
      UNBREAKING: 1

material 与 enchantments 同属 A;UNBREAKING 则属于附魔映射。附魔等级必须是整数,不能写成 1.5。缩进不能用 Tab 代替。

配置位置和字段拼写同样重要:菜单入口 bindings 写在文件顶层;点击动作 action 写在图标层,不属于 display。一个未知字段可能被忽略,并不一定使整个文件加载失败;省略行为应查对应字段表,不能由“没有报错”推断已经生效。

字符串、列表与映射

图标中的片段
flags:
  - HIDE_ENCHANTS
  - HIDE_ATTRIBUTES
enchantments:
  SHARPNESS: 3

flags 是逐项展开的列表;enchantments 是附魔名称到整数等级的映射。不要把文字、列表、对象混成同一种类型。坐标与尺寸同样可以逐项书写:

面板中的片段
locate:
  - 0
  - 1
scale:
  - 9
  - 2

locate 为横、纵坐标,scale 为宽、高;布局的完整使用方式见布局指南及布局参考。

引号

布局、颜色文本、包含冒号或 # 的文字使用引号;整数和布尔值直接填写。

图标中的片段
name: '&a等级: 3'
slot: '0x1'
glow: true
amount: 1

脚本还要经过自己的语法解析。这里外层双引号属于 YAML,内层单引号属于脚本:

action: "mmsg '&a欢迎使用菜单'"

YAML 单引号内需要一个单引号时,连续写两个;双引号内的 \n 会被 YAML 转为换行,而单引号内的 \n 是两个普通字符。不要把所有反斜线都额外复制一遍。

多行内容

lore:
  - '&7第一行'
  - '&7第二行'

|- 保留行间换行并移除末尾换行;| 保留末尾换行,> 则会折叠普通行间换行。Lore 本来就按行编写时不需要 enhancedLore;只有需要把文字形式的 \n 再展开时,才按物品属性设置它。

点击执行两步操作可以使用一个多行脚本,也可以使用动作列表:

action: |-
  mmsg '&a先收到这条消息'
  menu close

两例都先发消息,再关闭菜单。更复杂的条件和动作结构见点击动作。

合并配置片段

同一层的字段名只写一次。例如要给已有菜单增加命令与物品入口,应合并到同一个顶层 bindings,不要再追加第二份:

bindings:
  command: hello-menu
  item: 'minecraft:compass'

省略字段、填写 null 和填写 false 不是通用的同义写法。要停用某个入口就移除它的定义;要停用整个菜单文件,按文件筛选规则改名并重新扫描。列表字段若不需要任何条目,优先移除该字段,再按字段表确认省略行为。

Last updated on