UID244234性别保密经验 EP铁粒 粒回帖0主题精华在线时间 小时注册时间2022-1-25最后登录1970-1-1
|
阅读该教程需要一定的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
|
|