元数据系统
为物品添加特殊功能
概述
元数据系统让你可以为物品添加特殊功能,比如自定义耐久度、属性加成、特殊效果等。通过简单的配置,你就能让物品拥有丰富的功能。
什么是元数据
元数据就是物品的附加功能配置。它们不影响物品的基本外观,但会给物品添加特殊的行为和效果。
完整元数据类型列表
基于 Zaphkiel 内部实现的所有元数据类型:
| 元数据类型 | 功能 | 示例用途 |
|---|---|---|
attribute | 属性加成 | 攻击力、攻击速度、护甲值等属性修改 |
can-destroy | 可破坏方块列表 | 冒险模式下限制工具可破坏的方块 |
can-place-on | 可放置方块列表 | 冒险模式下限制方块可放置的位置 |
color | 颜色设置 | 皮革装备染色、药水颜色 |
data | 物品数据值 | 设置物品的 CustomModelData |
icon | 图标材质 | 动态更改物品材质类型 |
itemflag | 物品标志 | 隐藏附魔、属性等信息显示 |
native | 原生NBT | 直接设置物品的NBT数据 |
potion | 药水效果 | 为药水物品添加基础药水类型和自定义效果 |
shiny | 发光效果 | 让物品产生附魔光效但不显示附魔信息 |
skull | 头颅设置 | 自定义玩家头颅、材质头颅、HeadDatabase集成 |
spawner | 刷怪蛋类型 | 设置刷怪蛋生成的实体类型 |
tiphareth | Tiphareth集成 | 与Tiphareth插件的材质包集成 |
unbreakable | 无法破坏 | 设置物品为无法破坏状态 |
unique | 唯一标识 | 为物品添加唯一标识信息 |
基础元数据配置
耐久度元数据
让物品拥有自定义的耐久度系统:
属性元数据
为物品添加属性加成:
外观与视觉元数据
颜色元数据 (color)
为皮革装备和药水设置颜色:
图标元数据 (icon)
动态更改物品材质类型:
发光元数据 (shiny)
让物品产生附魔光效但不显示附魔信息:
头颅元数据 (skull)
自定义玩家头颅、材质头颅:
功能性元数据
数据元数据 (data)
设置物品的 CustomModelData:
物品标志元数据 (itemflag)
隐藏物品的各种信息显示:
重要说明
- 在 Minecraft 1.21+ 中,
HIDE_ATTRIBUTES标志只能隐藏被修改过的属性 - 对于武器等有默认属性的物品,需要先使用
attribute元数据修改这些属性(如设置为 0),然后HIDE_ATTRIBUTES才能生效 - 如果只设置
HIDE_ATTRIBUTES而不修改属性,武器的默认攻击伤害和攻击速度仍会显示
无法破坏元数据 (unbreakable)
设置物品为无法破坏状态:
唯一标识元数据 (unique)
为每个物品实例添加唯一标识:
冒险模式元数据
可破坏方块元数据 (can-destroy)
限制工具在冒险模式下可破坏的方块:
可放置方块元数据 (can-place-on)
限制方块在冒险模式下可放置的位置:
药水与生物元数据
药水元数据 (potion)
为药水物品添加基础药水类型和自定义效果:
刷怪蛋元数据 (spawner)
弃用警告
此元数据在 Minecraft 1.13+ 版本中已弃用。 从 1.13 开始,不同实体类型对应不同的刷怪蛋物品类型,无法通过 NBT 数据修改刷怪蛋的生成实体。
建议直接使用对应的刷怪蛋物品类型(如 zombie_spawn_egg、skeleton_spawn_egg 等)。
设置刷怪蛋生成的实体类型:
高级元数据
根据你提供的映射支持信息,我来重新给出完整的原生NBT元数据 (native) 文档内容。
原生NBT元数据 (native)
直接设置物品的NBT数据,支持嵌套结构和数据映射:
基础用法
嵌套结构支持
native 元数据完全支持复杂的嵌套NBT结构:
数据映射集成
native 元数据与 data-mapper 数据映射完美集成,支持动态显示和数据引用
映射语法说明
在 data-mapper 中引用 native NBT 数据时,使用以下语法:
"&路径"- 引用 NBT 中的嵌套值,使用点号分隔路径it- 引用data节点中的同名值- 支持复杂的 Kether 脚本表达式进行数据处理
实际应用示例
Tiphareth集成元数据 (tiphareth)
与Tiphareth插件的材质包集成:
实用元数据示例
装备类物品
元数据锁定
锁定元数据
使用 !! 后缀可以锁定元数据,确保配置更新后强制应用
锁定的作用
- 平衡性调整:修改武器属性后立即生效
- 功能修复:修复元数据问题后强制更新
- 统一标准:确保所有同类物品使用相同的元数据