跳到主要内容

方块自定义组件

适用版本:国际版 26.30,中国版 3.8(1.21.90)。

方块自定义组件(Block Custom Component)允许开发者在数据驱动方块中使用自己规定的格式的组件。

方块自定义组件可通过 ScriptAPI 中世界启动前事件中的StartupEvent.blockComponentRegistry.registerCustomComponent()方法注册。

registerCustomComponent(name: string, customComponent: BlockCustomComponent): void

其中,name属性注册为自定义组件的名称,而customComponent是一个接口BlockCustomComponent。下面给出接口BlockCustomComponent允许的所有属性,每个属性都接收一个两参数的函数,第一个参数返回对应事件,第二个参数返回自定义组件中的参数。

每个组件条目下方的高亮标签均含注释,可鼠标悬停或手机点击查看。例:这是一个特殊标签

这是标签下的特殊注解。


beforeOnPlayerPlace属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top

玩家放置方块前执行事件。

beforeOnPlayerPlace?: (arg0: BlockComponentPlayerPlaceBeforeEvent, arg1: CustomComponentParameters) => void

参数


onBlockStateChange属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
26.30+
该特性在游戏版本26.30+下可用,但该版本对于当前的中国版版本过高。在server模块脚本版本2.8.0+下可用。

Microsoft Learn JaylyMC projectxero.top

方块状态被更改时执行事件。

onBlockStateChange?: (arg0: BlockComponentBlockStateChangeEvent, arg1: CustomComponentParameters) => void

参数


onBreak属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.130+
该特性在游戏版本1.21.130+下可用,但该版本对于当前的中国版版本过高。在server模块脚本版本2.4.0+下可用。

Microsoft Learn JaylyMC projectxero.top

方块被破坏时执行事件。

onBreak?: (arg0: BlockComponentBlockBreakEvent, arg1: CustomComponentParameters) => void

参数


onEntity属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
26.10+
该特性在游戏版本26.10+下可用,但该版本对于当前的中国版版本过高。在server模块脚本版本2.6.0+下可用。

Microsoft Learn JaylyMC projectxero.top

onEntityFallOn属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top
beforeOnPlayerPlace?: (arg0: BlockComponentEntityFallOnEvent, arg1: CustomComponentParameters) => void

参数


onPlace属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top

onPlayerBreak属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。
更名
在server模块脚本版本1.12.0-1.19.0,请使用onPlayerDestroy。

Microsoft Learn JaylyMC projectxero.top

对于曾用名onPlayerDestroy,另见:

JaylyMC

onPlayerInteract属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top

onRandomTick属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top

onRedstoneUpdate属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
26.0+
该特性在游戏版本26.0+下可用,但该版本对于当前的中国版版本过高。在server模块脚本版本2.0.0+下可用。
需要前置组件
要使用该组件,请事先定义minecraft:redstone_consumer组件。

Microsoft Learn JaylyMC projectxero.top

此方块接收的红石信号更新后执行事件。

另见:minecraft:redstone_consumer组件

beforeOnPlayerPlace?: (arg0: BlockComponentRedstoneUpdateEvent, arg1: CustomComponentParameters) => void

参数


onStepOff属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top

onStepOn属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top

onTick属性

国际版
该特性仅在国际版可用。因为该组件必须配合ScriptAPI使用。
1.21.20+
该特性在游戏版本1.21.20+下可用。在server模块脚本版本1.12.0+下可用。

Microsoft Learn JaylyMC projectxero.top
beforeOnPlayerPlace?: (arg0: BlockComponentTickEvent, arg1: CustomComponentParameters) => void

参数



参考文档