rage-framework/server/src/index.ts

37 lines
947 B
TypeScript
Raw Normal View History

2024-06-08 22:35:14 +00:00
/// <reference types="@ragempcommunity/types-server" />
import rpc from 'rage-rpc'
type ServerEvent<K> = K extends keyof IServerEvents ? K : never
type ServerEventCallback<K> = K extends keyof IServerEvents
? ThisifyServerEvents[K]
: never
declare class Server {
public register<K = ServerEvent<K>>(
eventName: K,
callback: ServerEventCallback,
): void
public registerMultiple(events: {
[name: string]: (player: PlayerMp, ...args: any[]) => any
}): void
registerMultiple(events: { [name: string]: (...args: any[]) => any }) {
Object.entries(events).forEach(([name, callback]) =>
rpc.register(name, (data: any[]) => {
return Array.isArray(data) ? callback(...data) : callback(data)
}),
)
}
register() {}
}
export const rage = {
event: new Server(),
}
rage.event.register('customevent', vehicle => {})
function test() {}