class EventDispatcher { public static eventHandlers: { [key: string]: (args: any[]) => void } = {}; constructor() { API.onServerEventTrigger.connect(this.onEventTrigger); } private onEventTrigger = (eventName: string, args: System.Array) => { var argsArray: any[] = []; for (var i = args.Length - 1; i > 0; i--) argsArray[i] = (args)[i]; API.sendChatMessage("Event: " + eventName + ", args: " + JSON.stringify(argsArray)); var handler = EventDispatcher.eventHandlers[eventName]; if (typeof (handler) == undefined || handler == null) { API.sendChatMessage("~r~No handler for event: " + eventName); return; } handler(argsArray); }; } API.onResourceStart.connect(() => { new EventDispatcher(); });