旧版物品和方块事件响应¶
本页收录了旧版实验性自定义物品和自定义方块定义事件中可用的事件响应(Event Response)。这些事件响应需要开启"假日创作者功能"实验性玩法才能生效,属于1.16.100至1.19.20阶段的接口,其中部分已被现代脚本API自定义组件取代。现代自定义方块和自定义物品的交互逻辑建议优先使用脚本API,本页仅供旧包维护和历史参考。
适用范围¶
| 事件响应类 | 实体 | 物品 | 方块 |
|---|---|---|---|
run_command(ActorCommandResponse) | ✓ | — | — |
set_property(SetPropertyResponse,实体) | ✓ | — | — |
run_command(CommandResponse) | — | ✓ | ✓ |
decrement_stack | — | ✓ | ✓ |
damage | — | ✓ | ✓ |
die | — | ✓ | ✓ |
add_mob_effect | — | ✓ | ✓ |
remove_mob_effect | — | ✓ | ✓ |
play_effect | — | ✓ | ✓ |
play_sound | — | ✓ | ✓ |
set_property(SetBlockProperty,方块属性) | — | ✓ | ✓ |
shoot | — | ✓ | — |
swing | — | ✓ | ✓ |
teleport | — | ✓ | ✓ |
transform_item | — | ✓ | ✓ |
set_block | — | — | ✓ |
set_block_at_pos | — | — | ✓ |
spawn_loot | — | — | ✓ |
run_command(实体)¶
command也可以是字符串数组,一次执行多条命令。
target值 | 效果 |
|---|---|
self | 命令起点为实体本身 |
other | 命令起点为对立实体(若有) |
player | 命令起点为玩家(若为玩家实体) |
target | 命令起点为攻击目标(若有) |
parent | 命令起点为父实体(若有) |
baby | 命令起点为子实体(若有) |
block | 命令起点为正在交互的方块(若有) |
item | 命令起点为手持物品对应的持有实体(若有) |
set_property(实体属性)¶
设置实体的一个属性,接受字面值或Molang表达式。键名应为属性的赋命名空间标识符。
run_command(物品/方块)¶
command同样可以是字符串数组。target的可选值及效果与实体版本相同,但"命令起点"的解释依上下文(物品持有者/方块位置)而定:
target值 | 效果 |
|---|---|
self | 物品:持有该物品的实体;方块:方块本身 |
other | 对立实体(若有) |
player | 上下文玩家(若有) |
target | 攻击目标(若有) |
parent | 父实体(若有) |
baby | 子实体(若有) |
block | 正在交互的方块(若有) |
item | 持有该物品的实体(若有) |
decrement_stack¶
将物品堆叠数量减少1。ignore_game_mode为true时在创造模式下也会减少。
damage¶
对目标造成带有击退的伤害或损坏(对物品为损坏值)。type为伤害类型,对物品造成损坏时type不起作用。当type为fire时会额外点燃目标实体。
target值 | 效果 |
|---|---|
self | 实体:伤害自身;物品:损坏物品;方块:无意义 |
other | 对立实体(若有) |
player | 上下文玩家(若有) |
target | 攻击目标(若有) |
parent | 父实体(若有) |
baby | 子实体(若有) |
holder | 持有该物品/方块所对应物品的实体(若有) |
item | 方块:对方块对应的物品造成损坏 |
die¶
致目标实体死亡,或破坏目标方块(产生掉落物)。
target值 | 效果 |
|---|---|
self | 实体:死亡;物品:持有者死亡;方块:破坏方块并产生掉落物 |
other | 对立实体死亡(若有) |
player | 上下文玩家死亡(若有) |
target | 攻击目标死亡(若有) |
parent | 父实体死亡(若有) |
baby | 子实体死亡(若有) |
block | 方块:破坏方块并产生掉落物(若有) |
holder | 持有该物品/方块所对应物品的实体死亡(若有) |
add_mob_effect¶
给予目标一个状态效果。duration单位为秒,amplifier为等级(0对应I级)。
target值 | 效果 |
|---|---|
self | 实体:给予自身;物品:给予持有者;方块:给予对应物品的持有者 |
other | 给予对立实体(若有) |
player | 给予上下文玩家(若有) |
target | 给予攻击目标(若有) |
parent | 给予父实体(若有) |
baby | 给予子实体(若有) |
holder | 给予持有者(若有) |
remove_mob_effect¶
移除目标的一个状态效果。将effect设为"all"可移除全部状态效果。target可选值与add_mob_effect相同。
play_effect¶
在目标位置播放一个旧版粒子效果(data为粒子数据值)。
target值 | 效果 |
|---|---|
self | 实体:在实体处;物品:在持有者处;方块:在方块处 |
other | 在对立实体处(若有) |
player | 在上下文玩家处(若有) |
target | 在攻击目标处(若有) |
parent | 在父实体处(若有) |
baby | 在子实体处(若有) |
block | 在方块处(若有) |
holder | 在持有者处(若有) |
play_sound¶
在目标位置广播一个存档声音事件。target可选值与play_effect相同。
set_property(方块属性)¶
设置方块的一个方块状态,接受字面值或Molang表达式。键名应为方块状态的赋命名空间标识符。
shoot¶
"shoot": {
"projectile": "minecraft:snowball",
"target": "self",
"launch_power": 1.0,
"angle_offset": 0.0
}
从持有者处发射一个弹射物。launch_power和angle_offset也可以是Molang表达式;angle_offset目前仅被解析,无实际效果。弹射物的初始威力为minecraft:projectile组件power字段的值乘以launch_power。仅对物品有效,方块不支持。
target值 | 效果 |
|---|---|
self | 物品:从持有者处以持有者朝向发射;实体:从武器挂接点朝自身朝向发射 |
other | 朝对立实体方向发射(若有) |
target | 朝攻击目标方向发射(若有) |
parent | 朝父实体方向发射(若有) |
baby | 朝子实体方向发射(若有) |
swing¶
使持有该物品的实体播放一次摆臂动画,无参数。
teleport¶
"teleport": {
"target": "self",
"max_range": [32.0, 16.0, 32.0],
"destination": [0.0, 0.0, 0.0],
"land_on_block": true,
"avoid_water": true
}
在指定最大范围内随机传送目标实体,或传送到destination指定的绝对坐标处。land_on_block控制是否落在方块表面,avoid_water控制是否避免传送到水中。
target值 | 效果 |
|---|---|
self | 实体:传送自身;物品:传送持有者;方块:传送对应物品的持有者 |
other | 传送对立实体(若有) |
player | 传送上下文玩家(若有) |
target | 传送攻击目标(若有) |
parent | 传送父实体(若有) |
baby | 传送子实体(若有) |
holder | 传送持有者(若有) |
transform_item¶
将当前物品替换为transform指定标识符的物品。
set_block¶
将当前方块替换为block_type指定的方块类型。仅对方块有效。
set_block_at_pos¶
在相对于当前方块的偏移位置处设置指定方块类型。block_offset为[x, y, z]偏移向量。仅对方块有效。
spawn_loot¶
在当前方块处按战利品表产生掉落物。以0.0幸运值、无关联实体、无玩家、无伤害来源的模式从表中抽取物品。仅对方块有效。