///
import rpc from 'rage-rpc'
class Server implements RageFW_Server {
public register(
eventName: EventName,
callback: RageFW_ServerEventCallback,
): void {
rpc.register(eventName, callback as rpc.ProcedureListener)
}
public registerMany(events: {
[key in EventName]: RageFW_ServerEventCallback
}): void {
Object.keys(events).forEach(eventName =>
// unknown[] ?
// rpc.register(eventName, (args: unknown[]) =>
// Array.isArray(args) ? events[eventName as keyof typeof events](...args) : callback(args),
// ),
rpc.register(eventName, (args: unknown[]) =>
Array.isArray(args)
? events[eventName as EventName](args)
: events[eventName as EventName](args),
),
)
}
}
export const rage = {
event: new Server(),
}
rage.event.register('customServerEvent', (player, arg1, arg2) => {
return true
})
rage.event.registerMany({
customServerEvent: (player, arg1, arg2) => {
return true
},
})