Skip to content

结果处理器 (Result Processors)

结果处理器是 1.13.0.0 版本新增的功能,用于在合成时为配方结果添加额外效果。通过结果处理器,你可以复制、添加或移除物品的组件。

支持的配方类型

配方类型type 值支持状态
铁砧配方anvil✅ 支持
锻造台改造vanilla_smithing_transform✅ 支持
熔炉烧炼vanilla_smelting_*✅ 支持
酿造台vanilla_brewing✅ 支持
有序配方vanilla_shaped✅ 支持
无序配方vanilla_shapeless✅ 支持
切石机vanilla_stonecutting✅ 1.13.2.0及以上版本支持

注意:切石机配方 (vanilla_stonecutting) 暂不支持结果处理器。

基本语法

yaml
type: <配方类型>
result: '<物品ID>'
# ... 其他配方字段

result_processors:
  <组件名>:
    type: <处理策略>
    data:  # 可选,取决于处理策略
      <配置>

列表格式

同一组件支持列表格式,按顺序执行多个处理动作:

yaml
result_processors:
  enchantments:
    - type: copy_from_source
    - type: remove
      data:
        value:
          - "minecraft:sharpness"
    - type: add
      data:
        minecraft:unbreaking: 3

sourceItem 含义

不同配方类型中,源物品(source)的含义不同:

配方类型sourceItem
铁砧/锻造台base 物品(左侧物品)
烧炼/切石/酿造输入物品
工作台null(无源物品)

处理策略

结果处理器支持四种处理策略:

copy_from_source

从源物品(source)复制组件到结果(result)。

yaml
result_processors:
  enchantments:
    type: copy_from_source

add

直接为结果物品添加指定值。

yaml
result_processors:
  enchantments:
    type: add
    data:
      minecraft:sharpness: 5
      minecraft:mending: 1

merge_source

将源物品的组件与结果物品的组件智能合并。对于附魔,会取较高等级;对于属性,会合并修饰器。

yaml
result_processors:
  attributes:
    type: merge_source

remove

移除结果物品的组件。不指定 data 时移除全部,指定 data 时移除特定项。

yaml
# 移除所有附魔
result_processors:
  enchantments:
    type: remove

# 移除指定附魔
result_processors:
  enchantments:
    type: remove
    data:
      value:
        - "minecraft:sharpness"
        - "minecraft:mending"

sourceItem 含义

不同配方类型中,源物品(source)的含义不同:

配方类型sourceItem
铁砧/锻造台base 物品(左侧物品)
烧炼/切石/酿造输入物品
工作台null(无源物品)

支持的组件类型

基础组件

组件说明支持的策略
all复制所有组件copy_from_source
display_name显示名称全部
lore说明文本全部
enchantments附魔全部
attributes属性修饰器全部
item_flag物品标志全部
trim护甲纹饰copy_from_source, remove
unbreakable不可破坏全部
custom_model_data自定义模型数据全部

1.20.5+ 组件

组件说明支持的策略
food食物属性全部
hide_tooltip隐藏提示全部
item_name物品名称全部
max_stack_size最大堆叠数全部
rarity稀有度全部
fire_resistance防火全部

1.21+ 组件

组件说明支持的策略
tool工具属性全部

1.21.4+ 组件

组件说明支持的策略
custom_model_data_component自定义模型数据组件全部
item_model物品模型全部

特殊组件

组件说明支持的策略
custom_persistent_data自定义持久数据 (PDC)全部

完整示例

铁砧配方示例

yaml
type: anvil
result: 'minecraft:diamond_sword'
base: 'minecraft:netherite_sword'
addition: 'minecraft:nether_star'
cost_level: 10

result_processors:
  # 从源物品复制附魔
  enchantments:
    type: copy_from_source

  # 列表格式示例: 先复制source附魔, 再移除锋利, 再添加经验修补
  # enchantments:
  #   - type: copy_from_source
  #   - type: remove
  #     data:
  #       value:
  #         - "minecraft:sharpness"
  #   - type: add
  #     data:
  #       minecraft:mending: 1

  # 复制显示名称
  display_name:
    type: copy_from_source

  # 添加自定义 lore(单个动作)
  lore:
    type: add
    data:
      value:
        - "&7传世神器"
        - "&a由下界合金之星锻造"

  # 列表格式示例: 先从source复制lore, 再追加自定义行
  # lore:
  #   - type: copy_from_source
  #   - type: add
  #     data:
  #       value:
  #         - "&7由铁砧合成"

  # 合并属性
  attributes:
    type: merge_source

  # 添加物品标志
  item_flag:
    type: add
    data:
      value:
        - "HIDE_ENCHANTS"
        - "HIDE_ATTRIBUTES"

  # 设置为不可破坏
  unbreakable:
    type: add
    data:
      value: true

  # 复制护甲纹饰
  trim:
    type: copy_from_source

锻造台配方示例

yaml
type: 'vanilla_smithing_transform'
result: 'minecraft:netherite_sword'
base: 'minecraft:diamond_sword'
addition: 'minecraft:netherite_ingot'
template: 'minecraft:netherite_upgrade_smithing_template'

result_processors:
  # 复制所有组件
  all:
    type: copy_from_source

  # 添加自定义附魔
  enchantments:
    type: add
    data:
      minecraft:sharpness: 5

烧炼配方示例

yaml
type: 'vanilla_smelting_furnace'
result: 'minecraft:diamond'
source: 'minecraft:coal_ore'
experience: 1.0
cooking_time: 200

result_processors:
  # 添加自定义 lore
  lore:
    type: add
    data:
      value:
        - "&7通过烧炼获得"

自定义持久数据 (PDC) 示例

yaml
type: anvil
result: 'minecraft:diamond_sword'
base: 'minecraft:iron_sword'
addition: 'minecraft:diamond'

result_processors:
  custom_persistent_data:
    # 单个动作: 复制全部 PDC
    type: copy_from_source

    # 列表格式示例: 复制后再添加自定义 key
    # - type: copy_from_source
    # - type: add
    #   data:
    #     myns:custom_key: "value"

    # 只复制指定 key
    # type: copy_from_source
    # data:
    #   key: "myns:mykey"
    #   type: STRING

    # 直接设置 PDC 键值
    # type: add
    # data:
    #   myns:key1: "string_value"
    #   myns:key2: 42
    #   myns:key3: true

    # 合并 source 的 PDC(仅复制 result 中没有的 key)
    # type: merge_source

    # 清空全部 PDC
    # type: remove

    # 移除指定 key
    # type: remove
    # data:
    #   keys:
    #     - "myns:key1"
    #     - "myns:key2"

兼容旧语法

旧的 copy_components_rules 语法仍然兼容,会自动转换为 copy_from_source 策略:

yaml
# 旧语法
copy_components_rules:
  - 'enchantments'
  - 'display_name'
  - 'lore'

# 等同于新语法
result_processors:
  enchantments:
    type: copy_from_source
  display_name:
    type: copy_from_source
  lore:
    type: copy_from_source

AdvancedEnchantments 支持

如果安装了 AdvancedEnchantments 插件,还可以使用 ae_enchantments 组件:

yaml
result_processors:
  ae_enchantments:
    type: copy_from_source
    # type: merge_source
    # type: remove

基于 GPL-3.0 许可证发布