yoni-mcscripts-lib
Version:
为 Minecraft Script API 中的部分接口创建了 wrapper,并提供简单的事件管理器和任务管理器,另附有一些便于代码编写的一些小工具。
49 lines (48 loc) • 1.75 kB
JavaScript
// @ts-nocheck
import { LegacyEventTypes as EventTypes, LegacyEvent as Event } from "../../legacy_event.js";
import { EntityUtils as EntityBase } from "../../index.js";
class EntityHurtEvent extends Event {
/*damage;
cause;
hurtEntiry;
damagingEntity;
damagingProjectile;
damagingSource;
*/
constructor(event) {
let { damage, hurtEntity, damageSource } = event;
let { cause, damagingEntity, damagingProjectile } = damageSource;
hurtEntity = EntityBase.from(hurtEntity) ?? undefined;
damagingEntity = EntityBase.from(damagingEntity) ?? undefined;
damagingProjectile = EntityBase.from(damagingProjectile) ?? undefined;
super({ damage, cause, hurtEntity, damagingEntity, damagingProjectile,
damageSource: { cause, damagingEntity, damagingProjectile }
});
}
}
class EntityHurtEventSignal {
subscribe(callback, options) {
let func = (event) => {
if (!this.
return;
event = new EntityHurtEvent(event);
callback(event);
};
let vanillaSignal = EventTypes.get("minecraft:afterEvents.entityHurt");
if (options)
vanillaSignal.subscribe(func, options);
else
vanillaSignal.subscribe(func);
this.
return callback;
}
unsubscribe(callback) {
let cab = this.
if (cab) {
EventTypes.get("minecraft:afterEvents.entityHurt").unsubscribe(cab);
this.
}
}
}
EventTypes.register("mcyoni:entityHurt", new EntityHurtEventSignal());