Files
kubejs-utils/src/startup_scripts/EventBus.js

44 lines
1015 B
JavaScript

/**
* Create a simple event bus for handling custom events in KubeJS environment.
* @returns {EventBus}
*/
function createEventBus() {
/**
* @type {EventBus}
*/
const bus = {
eventMap: {},
register: function (eventName, callback) {
this.eventMap[eventName] = callback;
},
emit: function (eventName, event) {
const callback = this.eventMap[eventName];
if (callback) {
return callback(event);
}
},
};
return bus;
}
global["eventBus"] = createEventBus();
// ==================== Forge Event Listeners ====================
ForgeEvents.onEvent(
"net.minecraftforge.event.entity.living.LivingEntityUseItemEvent$Finish",
(event) => {
eventBus.emit("LivingEntityUseItemEvent$Finish", event);
},
);
ForgeEvents.onEvent(
"net.minecraftforge.event.entity.player.ItemFishedEvent",
(event) => {
eventBus.emit("PlayerItemFishedEvent", event);
},
);