ItemsAdderAdditionsItemsAdderAdditions

自定义标签

在 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

标签类型

类型别名值可以包含
itemitemsItemsAdder 物品、原版物品、MMOItems 物品和嵌套物品标签。
blockblocksItemsAdder 方块、原版方块和嵌套方块标签。
furniturefurnituresItemsAdder 家具 ID 和嵌套家具标签。
reciperecipes配方 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 匹配路径支持自定义标签,包括:

  • 进度中的物品、方块、家具和配方条件
  • 玩家谓词中的物品、装备、槽位和方块检查
  • stackable behaviour 的 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.iconclear_item.itemreplace_item.item 等输出,请使用具体物品 ID。
  • 覆盖类似原版标签的标签,例如 #minecraft:planks。当存在相同 ID 的自定义标签时,会优先解析自定义标签。

相关页面

On this page