diff --git a/server/src/index.ts b/server/src/index.ts index 904866e..6aa4b25 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -9,14 +9,29 @@ import { import { nativeEvents } from './native.events' class Server { + private isNativeEvent(eventName: string): eventName is keyof IServerEvents { + return nativeEvents.includes(eventName) + } + + public testRegister( + event: string, + callback: (player: PlayerMp, ...args: unknown[]) => void, + ) { + rpc.register(event, async (data, info) => { + callback(info.player as PlayerMp, ...data) + }) + } + public register( eventName: EventName, callback: RageFW_ServerEventCallback, ): void { - if (nativeEvents.includes(eventName)) { + if (this.isNativeEvent(eventName)) { mp.events.add(eventName, callback) } else { - rpc.register(eventName, callback as rpc.ProcedureListener) + rpc.register(eventName, async (data: any[], info) => { + return callback(info.player as PlayerMp, data) + }) } } @@ -54,3 +69,9 @@ export const fw = { event: new Server(), player: new Player(), } + +fw.event.register('ggfdgfd', player => {}) + +fw.event.registerMany({ + trailerAttached: player => {}, +}) diff --git a/server/src/types.ts b/server/src/types.ts index 439351c..f1d46fc 100644 --- a/server/src/types.ts +++ b/server/src/types.ts @@ -9,16 +9,15 @@ export type RageFW_ServerEvent = | keyof RageFW_ICustomServerEvent | keyof IServerEvents -export type RageFW_ServerEventCallback< - K extends keyof RageFW_ICustomServerEvent | keyof IServerEvents, -> = K extends keyof RageFW_ICustomServerEvent - ? ( - player: PlayerMp, - ...args: Parameters - ) => ReturnType - : K extends keyof IServerEvents - ? ThisifyServerEvents[K] - : never +export type RageFW_ServerEventCallback = + K extends keyof RageFW_ICustomServerEvent + ? ( + player: PlayerMp, + ...args: Parameters + ) => ReturnType + : K extends keyof IServerEvents + ? ThisifyServerEvents[K] + : never export type RageFW_ClientEvent = keyof RageFW_ICustomClientEvent