跳到主要内容

自定义方块组件

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

注意

自定义方块组件仅限国际版的 ScriptAPI 可用。

自定义方块组件可通过世界启动前事件(StartupEvent)的blockComponentRegistry属性中的registerCustomComponent()方法注册。其中,name属性注册为自定义组件的名称,而customComponent是一个接口BlockCustomComponent

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

下面给出接口BlockCustomComponent允许的所有属性,每个属性都接收一个两参数的函数,第一个参数返回对应事件,第二个参数返回自定义组件中的参数。


beforeOnPlayerPlace属性

国际版 1.21.20+

玩家放置方块前执行事件。适用脚本@minecraft/server版本1.12.0或更高。

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

参数


onBlockStateChange属性

国际版 26.20+
警告

该属性仍处于实验性玩法,必须开启「测试版 API」才可使用。在实验性玩法中,该属性存在功能不稳定、功能更改甚至未来被移除的风险。

方块状态被更改时执行事件。适用脚本@minecraft/server版本beta

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

参数


onBreak属性

国际版 1.21.130+

方块被破坏时执行事件。适用脚本@minecraft/server版本2.4.0或更高。

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

参数


onEntity属性


onEntityFallOn属性

国际版 1.21.20+

实体掉落到此方块后执行事件。适用脚本@minecraft/server版本1.12.0或更高。

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

参数


onPlace属性


onPlayerBreak属性


onPlayerInteract属性


onRandomTick属性


onRedstoneUpdate属性

国际版 1.26.0+

此方块接收的红石信号更新后执行事件。适用脚本@minecraft/server版本2.5.0或更高。

注意

要使用此事件,必须规定minecraft:redstone_consumer组件。

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

参数


onStepOff属性


onStepOn属性


onTick属性

国际版 1.21.20+

令方块循环执行代码。适用脚本@minecraft/server版本1.12.0或更高。

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

参数



参考文档