yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
49 lines (45 loc) • 1.48 kB
JavaScript
import { LegacyEventTypes as EventTypes, LegacyEventTriggerBuilder as EventTriggerBuilder, LegacyEventSignal as EventSignal, LegacyEvent as Event } from "../../../legacy_event.js";
import { EntityUtils as EntityBase } from "../../../EntityUtils.js";
class RaidEventTriggerEvent extends Event {
get source(){
return this.
}
get id(){
return "minecraft:raid_trigger";
}
constructor(source){
super();
this.
}
}
class RaidEventTriggerEventSignal extends EventSignal {
}
let eventId = null;
function start(){
let options;
try { //兼容1.19.30
options = new Minecraft.EntityDataDrivenTriggerEventOptions();
} catch {
options = {};
}
options.entityTypes = ["minecraft:player"];
options.eventTypes = ["minecraft:trigger_raid"];
EventTypes.get("minecraft:dataDrivenEntityTriggerEvent")
.subscribe(onEntityEvent, options);
}
function stop(){
EventTypes.get("minecraft:dataDrivenEntityTriggerEvent")
.unsubscribe(onEntityEvent);
}
let trigger = new EventTriggerBuilder("yoni:raidEventTrigger")
.eventSignalClass(RaidEventTriggerEventSignal)
.eventClass(RaidEventTriggerEvent)
.whenFirstSubscribe(start)
.whenLastUnsubscribe(stop)
.build()
.registerEvent();
function onEntityEvent(event){
if (event.entity.typeId === "minecraft:player")
trigger.fireEvent(EntityBase.from(event.entity));
}