自定义标签
在 ItemsAdder 内容 YAML 中定义可复用的物品、方块、家具和配方分组
Since v1.0.10
自定义标签可以把内容 ID 分组一次,然后在受支持的 ItemsAdderAdditions 功能中重复使用。它们会从任意 ItemsAdder 内容 YAML 文件的顶层 tags 节加载。
基础结构
info:
namespace: my_pack
tags:
ruby_tools:
type: item
values:
- ruby_pickaxe
- ruby_axe
- mmoitems:tool:ruby_hammer
decorative_blocks:
type: block
values:
- ruby_lamp
- minecraft:amethyst_block
trading_stations:
type: furniture
values:
- alchemy_table
- forge_table
ruby_recipes:
type: recipe
values:
- ruby_sword
- ruby_pickaxe在同一 namespace 中用 #tag_id 引用标签,跨 namespace 时用 #namespace:tag_id。标签引用规则请见 ID。
标签类型
| 类型 | 别名 | 值可以包含 |
|---|---|---|
item | items | ItemsAdder 物品、原版物品、MMOItems 物品和嵌套物品标签。 |
block | blocks | ItemsAdder 方块、原版方块和嵌套方块标签。 |
furniture | furnitures | ItemsAdder 家具 ID 和嵌套家具标签。 |
recipe | recipes | 配方 ID 和嵌套配方标签。 |
如果省略 type,该标签会作为物品标签处理。
嵌套标签
标签可以包含同类型的其他标签。
info:
namespace: my_pack
tags:
ruby_tools:
type: item
values:
- ruby_pickaxe
- ruby_axe
mining_tools:
type: item
values:
- "#ruby_tools"
- minecraft:iron_pickaxe
- minecraft:diamond_pickaxe嵌套标签会在重载时解析。循环引用会被检测并忽略,不会卡住服务器。
自定义标签可用位置
运行时 ID 匹配路径支持自定义标签,包括:
- 进度中的物品、方块、家具和配方条件
- 玩家谓词中的物品、装备、槽位和方块检查
stackablebehaviour 的items- 合成配方原料(
iaa_crafting_table)
完整示例
info:
namespace: my_pack
tags:
ruby_tools:
type: item
values:
- ruby_pickaxe
- ruby_axe
items:
charged_ruby:
display_name: "<red>Charged Ruby"
behaviours:
stackable:
blocks:
- charged_ruby_block
items:
- "#my_pack:ruby_tools"advancements:
collect_any_ruby_tool:
display:
title: "Ruby Tools"
description: "Obtain any ruby tool."
icon: my_pack:ruby_pickaxe
criteria:
collect:
trigger: obtain_item
conditions:
items:
- "#my_pack:ruby_tools"重载行为
自定义标签会在动作、behaviours、配方、进度和世界生成重载前准备好。修改标签后运行 /iareload。
常见错误
- 混用标签类型。家具标签不能包含物品标签。
- 用相同的
type和标签 ID 定义两次。第一条声明会生效。 - 期望自定义标签创建物品堆叠。对于配方结果、
toast.icon、clear_item.item、replace_item.item等输出,请使用具体物品 ID。 - 覆盖类似原版标签的标签,例如
#minecraft:planks。当存在相同 ID 的自定义标签时,会优先解析自定义标签。