refector(EventBus): splite EventBus type definition and its implemention

This commit is contained in:
2025-12-16 20:16:56 +08:00
parent c208dd77ca
commit f7d8b7b7b0
3 changed files with 108 additions and 124 deletions

View File

@@ -0,0 +1,43 @@
/**
* 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);
},
);