Skip to content

CoreLib 动作

EmakiItem 启用后会向 CoreLib 动作注册表追加主手物品更新、重绘、修复、耐久操作,以及原版 Data Component 新增、修改和删除动作。

本页只记录 EmakiItem 注册的 CoreLib 动作;CoreLib 自带通用动作见 CoreLib 动作系统。当前 Action ID 只使用下表中的规范名,不再提供历史别名入口。

动作 ID

动作 ID用途参数
emakiitem_update强制按 EmakiItem 更新服务刷新主手物品。
emakiitem_rerender通过 CoreLib 物品装配服务重建主手物品展示。
emakiitem_repair_amount修复主手物品指定耐久损伤值。amount
emakiitem_damage增加主手物品指定损伤值。amount
emakiitem_set_damage设置主手物品当前损伤值。value
emakiitem_set_durability设置主手物品剩余耐久值。value
emakiitem:component_add新增一个 Data Component;目标已存在该组件时失败。componentvalue、可选 slot
emakiitem:component_modify修改一个已存在的 Data Component;目标缺少该组件时失败。componentvalue、可选 slot
emakiitem:component_remove删除一个 Data Component;目标缺少该组件时幂等跳过。component、可选 slot

参数

参数类型必填默认值说明
amountINTEGER修复/损伤动作必填0修复或增加损伤的数量;负数会按 0 处理。
valueINTEGER耐久设置动作必填0目标损伤值或目标剩余耐久值。
componentSTRINGcomponent 动作必填Data Component ID;省略命名空间时按 minecraft: 解析。
valueSTRINGadd/modify 必填JSON-ish component 值,支持 JSON 对象/数组、引号字符串、布尔值、数字、null 和普通字符串。结构化值格式错误时动作失败。
slotSTRING自动解析目标指定玩家背包槽位;显式传入但非法时动作失败,不会静默回退。

Component 目标解析

Component 动作按以下顺序解析目标:

  1. 动作参数中的显式 slot
  2. Action 上下文中的标准可变 holder:item_targetCoreActionItemTarget)。
  3. Action 上下文中的兼容物品键:itemitemStackitem_stackresultItemresult_itemtargetItemtarget_item
  4. 当前玩家主手。

Forge 与 Strengthen 的结果动作会传入 item_target。Component 动作修改 holder 后,调用模块会在动作链完成后读取最终物品并交付;动作本身不会提前把结果物品塞入玩家背包。

支持的槽位

  • 主手:mainmainhandmain_handhandheldheld_itemselected
  • 副手:offhandoff_hand
  • 护甲:head / helmet / armor_headchest / chestplate / armor_chestlegs / leggings / armor_legsfeet / boots / armor_feet
  • 数字槽位:040,也可写成 slot_12inventory_12
  • 快捷栏:hotbar_0hotbar_8

示例

yaml
actions:
  - 'emakiitem_update'
  - 'emakiitem_repair_amount amount=25'
  - 'emakiitem:component_add component=max_stack_size value=16'
  - 'emakiitem:component_modify component=enchantment_glint_override value=true slot=mainhand'
  - 'emakiitem:component_remove component=custom_name slot=offhand'

带空格或结构化内容的 value 应使用 Action 引号语法,例如:

text
emakiitem:component_modify component=custom_name value='<gold>锻造之刃</gold>'
emakiitem:component_add component=custom_data value='{"emaki":{"source":"forge"}}'

使用提示

  • 更新/耐久动作需要玩家上下文,且作用于玩家主手物品;主手为空时返回 skipped。
  • 更新/耐久动作返回 changeddamagemax_damage 数据。
  • emakiitem_set_durability 在物品没有最大耐久时不做修改;损伤值会被钳制到 [0, max_damage],降到上限以下时自动清除修复禁用标记。
  • Component 动作可以作用于显式槽位、跨模块结果 holder 或上下文 ItemStack;没有任何可用目标时返回失败。
  • 组件修改通过 CoreLib ConfiguredItemDefinition patch 应用,会保留第三方物品来源身份、PDC 和未涉及的组件。
  • Component 动作返回 operationcomponenttargetchangedexisted_beforewarningsissues 数据,供后续动作链与调试读取。