物品属性
查阅图标外观字段、继承规则、模型、提示信息与 NBT 的适用范围。
本页用于查字段。想从一个按钮开始修改材质、文字与点击反馈,见制作按钮外观。物品从哪里取得,见物品来源。
写入位置
常规外观字段可以直接写在 panels 中某个面板的 icons.A 下,也可以集中写在 icons.A.display 中:
A:
display:
material: DIAMOND_SWORD
name: '&b物品详情'
lore:
- '&7钻石剑'
- '&7点击查看详情'
amount: 1
damage: 0
unbreakable: true
flags:
- HIDE_ATTRIBUTES
- HIDE_UNBREAKABLE
action: "mmsg '&b钻石剑 &7· &f数量 1'"action 留在图标层,与 display 同级。一旦写了 display,就把这份图标的外观字段全部放进去;同一图标外层的 name、lore、material 等不会再合并进去。每个字段只填写一个名称,不同时填写其别名。
头像和外部来源的顶层简写不属于普通外观字段。使用 display 时,应写成 display.texture.head 或 display.texture.source/value,不能直接写 display.head、display.itemsadder。动画 frames 的每一项也接受外观字段,详见动画。
字段
以下是未从父图标继承值、也没有动画默认外观补值时的省略行为。省略属性通常意味着不覆盖来源物品的原值,不意味着重设为 1、0 或 false。新图标必须提供来源或继承来源;仅填写名称不会自动生成一张纸。
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
texture(material、mat) | 材料文字或来源对象 | 否;新图标需有一种有效来源 | 不指定新物品;初次没有来源时为空,动画中保留当前物品 | 材料名如 PAPER;对象使用 head 或 source/value,见物品来源 |
head(skull) | 文字 | 否 | 不选择头像来源 | 图标顶层或动画帧的来源简写,不是 display 的直接字段;接受玩家名、纹理 ID、头颅纹理 Base64 |
name | 文字 | 否 | 不覆盖原名称 | 支持颜色、占位符和文字样式;需要确定颜色时显式填写颜色代码 |
lore(lores) | 文字或文字列表 | 否 | 不覆盖原 Lore | 填写时替换整份说明,不追加;每项或实际换行分别显示一行 |
enhancedLore | 布尔值 | 否 | 不转换文字形式的 \n | true 才把 Lore 中的文字换行标记拆行;不控制其他文本位置 |
amount(count、amt) | 整数或表达式文字 | 否 | 不覆盖原数量 | 解析后最小为 0;0 不显示正常堆叠物品,不要把它当作“显示数字零” |
damage(durability、dur) | 整数或表达式文字 | 否 | 不覆盖原损伤值 | 填写损伤而非剩余耐久;0 表示无损伤,使用服务端支持的数值范围 |
customModelData(model) | 整数或表达式文字 | 否 | 不覆盖原模型数据 | 需要支持模型数据的服务端;单个整数编号,不接受浮点列表或完整模型组件对象 |
itemModel(item_model、item-model) | 文字 | 否 | 不覆盖原物品模型 | 命名空间:路径,支持占位符;需要 1.21.2+;空文字用于清除该模型设置 |
color | 文字 | 否 | 不改变染色 | 填写也不生效;不能给皮革装备、药水等染色,见物品染色 |
glow(shiny) | 布尔值或表达式文字 | 否 | 不主动修改发光相关属性 | true 添加隐藏的饵钓附魔;false 不是清除全部附魔,见附魔与发光 |
enchantments(enchantment、enchant) | 附魔名到整数等级的映射 | 否 | 不添加附魔,已有附魔保留 | 添加或覆盖同名附魔,不清空其他附魔;等级必须是整数 |
flags(flag) | 文字或文字列表 | 否 | 不添加提示标志 | 只添加,不清除已有标志;名称必须在当前服务端存在 |
hideTooltip(hide_tooltip、hide-tooltip) | 布尔值或表达式文字 | 否 | 不修改已有提示框设置 | true 隐藏整个提示框,需要 1.20.5+;false 不恢复已隐藏的提示框 |
unbreakable | 布尔值或表达式文字 | 否 | 不修改已有不可破坏设置 | true 设置不可破坏;false 不清除来源物品已有的不可破坏状态 |
nbt | 标签名到单个值的映射 | 否 | 不添加或覆盖标签 | 常规可用值为文字或数字;支持值中的占位符,有布尔值与嵌套限制,见NBT |
slot(slots、pos、position、positions) | 整数、位置文字或其列表 | 否 | 初次使用布局位置;后续保留当前位置 | 面板局部位置;序号、坐标、范围和列表见布局与槽位 |
delay(last) | 整数,单位 tick | 否 | 动画帧使用统一间隔,未设时为 20 tick | 仅动画帧项有效;图标顶层简写不读取它,不控制点击冷却 |
省略、继承与覆盖
- 子图标未填写的外观属性通常从父图标继承;
inherit: false可关闭这一行为,见图标。 - 动画帧未填写的常规属性使用图标的默认外观。没有新来源的帧在当前物品上继续修改,不会自动还原来源物品。
name、lore等一旦填写就覆盖对应内容;flags、enchantments和nbt不是“先清空再重建”。enhancedLore的动画行为有例外:需要拆分文字\n的每一帧都应填写enhancedLore: true。- 动画使用
nbt时,在需要它的每一帧中明确填写对应映射,不要仅依赖默认外观中的nbt补值。
动画关联字段
这些设置写在图标层,与 display 同级,不要放进 display:
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
frames | 外观对象列表 | 否 | 没有物品帧动画 | 每项可使用本页外观字段及 delay |
framesProperties(frames-properties、frames-prop、prop) | 动画设置对象 | 否 | 默认间隔 20 tick、模式 LOOP | 为 frames 提供统一设置 |
以下字段写在 framesProperties 中:
| 字段 | 类型 | 必填 | 省略行为 | 说明 |
|---|---|---|---|---|
delay(default-delay、period、last) | 整数,单位 tick | 否 | 20 tick | 统一帧间隔;单帧的 delay / last 优先 |
mode(type) | 模式文字 | 否 | LOOP | ONE_WAY 单向、LOOP 循环、REVERSIBLE 往返、RANDOM 随机 |
模式名不区分大小写,空格或连字符可替代下划线;无法识别的模式回到 LOOP,不是近似匹配。完整使用方式见动画,Lore 和 NBT 的逐帧限制仍按本页说明处理。
位置格式
slot 的坐标相对所在面板,序号从 0 开始;面板宽度决定序号换算,不能把窗口槽位直接套到任意子面板。
| 写法 | 含义 |
|---|---|
0 | 第一个槽位 |
'4x1' 或 '4,1' | 第五列、第二行,坐标从 0 开始 |
'0~8'、'0-8'、'0..8' | 从 0 到 8,包含两端,使用递增范围 |
'0;8;4x1' | 分号组合多个序号或坐标 |
| 块状列表 | 每项写一个上述位置表达式,不使用嵌套坐标对象 |
| 含实际换行的布局文字 | 取出现次数最少的非空字符对应的位置;有多个同样少的字符时不要依赖其选择顺序 |
常规排版优先使用清晰的 layout 或槽位列表,示例见布局与槽位。
Lore 与换行
三种配置写法均显示两行 Lore;选择纸张可查看说明。
图示中的三张纸悬停后都显示“第一行”“第二行”,区别只在配置写法。可下载 lore-demo.yml,保存到 plugins/Invero/workspace/ 后,用 /invero menu reload 和 /lore-demo 打开。
A:
material: PAPER
lore:
- '&7第一行'
- '&7第二行'列表每项就是一行,不需要 enhancedLore。
节点或占位符返回真正的换行时也会分行;返回文字 \n 时才需要增强处理。它只影响 Lore,不负责颜色、名称换行或聊天悬停换行。lore 与 enhancedLore 要放在同一份显示配置里。
menu:
title: '&8物品说明与换行'
rows: 1
bindings:
command: lore-demo
panels:
- layout:
- 'ABC '
icons:
A:
material: PAPER
name: '&f普通列表'
lore:
- '&7第一行'
- '&7第二行'
B:
material: PAPER
name: '&f文字换行标记'
enhancedLore: true
lore:
- '&7第一行\n&7第二行'
C:
material: PAPER
name: '&f多行文字'
lore: |-
&7第一行
&7第二行数量与动态值
A:
material: PAPER
name: '&f计数'
amount: '{{ctx get count}}'count 应由菜单变量或打开参数提供,例如在菜单顶层初始化:
events:
pre_open: 'ctx set count to 1 true'数值变化后用 icon update 或 icons update 刷新,详见图标刷新。数值字段应得到数字;无法转换的文字可能变成 0,不会替你保留原值。布尔表达式可返回 true / false,也识别 yes / 1 为真。
模型
A:
material: PAPER
name: '&f模型按钮'
customModelData: 1001customModelData(model)只设置整数模型数据;它不会自动生成模型资源,也不提供新版完整自定义模型数据组件的列表配置。
两者是不同的设置,不是彼此的别名。选择哪种取决于资源包采用的模型方案;仅填写编号或路径,不会把普通纸自动变成自定义图案。
隐藏提示信息
A:
material: DIAMOND_SWORD
name: '&b展示物品'
unbreakable: true
flags:
- HIDE_ATTRIBUTES
- HIDE_UNBREAKABLE| 设置 | 可见效果与限制 |
|---|---|
HIDE_ENCHANTS | 隐藏附魔文字,不删除附魔 |
HIDE_ATTRIBUTES | 隐藏属性提示;在 1.21+ 还会清空该物品的属性修饰数据,不应当作纯文字隐藏使用 |
HIDE_UNBREAKABLE | 隐藏不可破坏提示,不改变不可破坏状态 |
hideTooltip: true | 隐藏整个提示框,包括名称和 Lore;需要 1.20.5+ |
flags 接受当前服务端提供的物品标志,不限于上表。名称不区分大小写,名称中的空格可替代下划线;连字符不是通用替代写法。拼错或填写当前服务端不存在的名称会导致该图标处理失败,而不是自动忽略。
unbreakable: false、hideTooltip: false 以及删去一项 flags,均不能保证清除导入物品原有的设置。要恢复提示,选择没有这些隐藏设置的来源物品。
NBT
写在当前外观配置的 nbt 下:
nbt:
example_tag: 'menu_button'
example_number: 7
example_short: '1s'
example_owner: '{{player name}}'nbt 只接受一层映射,值为单个文字或数字的常规用法;不能在值处直接放嵌套对象、列表或完整数据组件。标签名中的点号可表示层级路径,例如 example.owner;这仍是平铺的 YAML 键,不是在值处嵌套对象。同名顶层标签被覆盖,其他顶层标签保留;不是递归合并,使用点路径创建的父标签也可能替换旧父标签的其他内容。此字段不提供删除标签的语法,也不能用 null 当作删除指令。
值会按内容识别整数、长整数、小数等类型;加引号的 '123' 也不保证保存为文字。'1s' 这类非负整数字样加 s 的文字可表示短整数。不要填写 true / false:虽然字段能读入布尔值,实际写入不支持它们,给布尔文字加引号也不能解决。需要特定标签类型或复杂结构时,使用已有物品来源,不要把此字段当作完整 NBT 编辑器。
动画中的 NBT 与增强 Lore
不要把“省略帧字段使用默认外观”理解成 NBT 与增强开关也能完全补齐。默认外观含 nbt 而当前帧省略 nbt 时,该帧可能处理失败;需要转换文字 \n 时也必须在当前帧开启增强处理。
下面是可直接放在 icons 下的两帧图标片段。两帧均显式填写 NBT 和 enhancedLore,只有名称变化,说明始终显示两行:
A:
material: PAPER
name: '&f状态'
lore:
- '&7第一行\n&7第二行'
enhancedLore: true
nbt:
example_tag: 'menu_button'
frames:
- name: '&a显示状态'
enhancedLore: true
nbt:
example_tag: 'menu_button'
- name: '&e等待状态'
enhancedLore: true
nbt:
example_tag: 'menu_button'如果不需要外观动画,直接使用默认外观、不配置 frames 即可。帧间隔、循环模式和其他逐帧限制见动画。
物品染色
color 是可读入但不会生效的字段,不会改变皮革装备、药水或其他物品的颜色。需要染色效果时,先准备好目标物品,再通过物品来源导入。名称与 Lore 的文字颜色不受此限制,直接使用颜色与样式。
Last updated on