ScriptAPI自定义组件教程
阅读该教程需要一定的JavaScript基础,若没有请退出,谢谢。教程禁止水评论,若对你有用请回复一个“有用”。
教程开始。
官方教程:
TypeScript
import { ItemComponentConsumeEvent, world } from "@minecraft/server";
world.beforeEvents.worldInitialize.subscribe(initEvent => {
initEvent.itemComponentRegistry.registerCustomComponent('example:add_night_vision_on_consume', {
onConsume(arg: ItemComponentConsumeEvent) {
arg.source.addEffect('minecraft:night_vision', 600);
}
});
});
1.导入必要模块
JavaScript:
import { ItemComponentConsumeEvent, world } from "@minecraft/server";
2.监听 worldInitialize 事件
JavaScript
world.beforeEvents.worldInitialize.subscribe((initEvent) => {
// 这里将添加自定义组件的代码
});
3.注册自定义物品组件
说明:在 worldInitialize 事件的处理函数中,我们可以使用 itemComponentRegistry 来注册自定义组件。
initEvent.itemComponentRegistry.registerCustomComponent('example:add_night_vision_on_consume', {
onConsume(arg) {
arg.source.addEffect('minecraft:night_vision', 600);
}
});
其他说明:arg返回的是ItemComponentConsumeEvent 类
链接:ItemComponentConsumeEvent
创建完成后在JSON中的components对象中写入以下代码
"minecraft:custom_components": [
"example:add_night_vision_on_consume"
]
4.实现功能
world.beforeEvents.worldInitialize.subscribe((initEvent) => {
initEvent.itemComponentRegistry.registerCustomComponent('example:add_night_vision_on_consume', {
onConsume: (arg) => {
arg.source.addEffect('minecraft:night_vision', 600);//实现夜视药水效果
}
});
});
说明:
onConsume为物品被吃掉后调用
详细页ItemCustomComponent Interface
有用
import { world, system } from "@minecraft/server";
world.beforeEvents.worldInitialize.subscribe((event) => {
event.itemComponentRegistry.registerCustomComponent("<自定义组件的标识符>", {
onUse(E) {
system.runJob(Tigger(E.source))
}
})
})
function* Tigger(player) {
player.addEffect("night_vision",100,{amplifier:255,showParticles:false})
yield;
}
页: [1]