diff --git a/client/src/types/client.ts b/client/src/types/client.ts index 6cc633b..bbc5ce5 100644 --- a/client/src/types/client.ts +++ b/client/src/types/client.ts @@ -4,16 +4,22 @@ import type { RageFW_ICustomClientEvent } from 'rage-fw-shared-types' /** * Union of all available client event names - * These only include custom events + * These include custom and system events */ -export type RageFW_ClientEvent = keyof RageFW_ICustomClientEvent +export type RageFW_ClientEvent = + | keyof RageFW_ICustomClientEvent + | keyof IClientEvents /** * Array of arguments for an event, name of which you pass as a generic - * These only include custom events + * These include custom and system events */ export type RageFW_ClientEventArguments = - Parameters + K extends keyof RageFW_ICustomClientEvent + ? Parameters + : K extends keyof IClientEvents + ? Parameters + : never /** * Callback (function) for an event, name of which you pass as a generic diff --git a/server/src/index.ts b/server/src/index.ts index 20c6e4b..7595f40 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -34,7 +34,7 @@ class Server { rpc.register( eventName, async (args: RageFW_ServerEventArguments, info) => { - callback(info.player as PlayerMp, args) + callback([info.player as PlayerMp, ...args]) }, ) } @@ -43,7 +43,11 @@ class Server { eventName: EventName, callback: RageFW_ServerEventCallbackNative, ): void { - mp.events.add(eventName, callback) + mp.events.add( + eventName, + (...args: Parameters) => + callback([...args]), + ) } public register( diff --git a/server/src/types/server.ts b/server/src/types/server.ts index 5f64db6..e7a487b 100644 --- a/server/src/types/server.ts +++ b/server/src/types/server.ts @@ -54,8 +54,7 @@ export type RageFW_ServerEventReturn = export type RageFW_ServerEventCallbackCustom< K extends keyof RageFW_ICustomServerEvent = keyof RageFW_ICustomServerEvent, > = ( - player: PlayerMp, - args: RageFW_ServerEventArguments, + payload: [player: PlayerMp, ...args: RageFW_ServerEventArguments], ) => RageFW_ServerEventReturn /** @@ -64,7 +63,7 @@ export type RageFW_ServerEventCallbackCustom< */ export type RageFW_ServerEventCallbackNative< K extends keyof IServerEvents = keyof IServerEvents, -> = IServerEvents[K] +> = (payload: Parameters) => ReturnType export type _ServerEventHasArgs< EventName extends keyof RageFW_ICustomServerEvent, diff --git a/shared-types/types/types/index.d.ts b/shared-types/types/types/index.d.ts index 3914b9e..8035480 100644 --- a/shared-types/types/types/index.d.ts +++ b/shared-types/types/types/index.d.ts @@ -1,7 +1,11 @@ declare module 'rage-fw-shared-types' { - export interface RageFW_ICustomServerEvent {} + export interface RageFW_ICustomServerEvent { + test(test: string): void + } - export interface RageFW_ICustomClientEvent {} + export interface RageFW_ICustomClientEvent { + test(test: string): void + } export interface RageFW_ICustomCefEvent { test(test: string): void