refactor
This commit is contained in:
+2
-27
@@ -1,7 +1,7 @@
|
||||
/// <reference types="../../shared/server/index.d.ts" />
|
||||
import rpc from 'rage-rpc'
|
||||
import { RageFW_ServerEvent, RageFW_ServerEventCallback } from './types.js'
|
||||
|
||||
class Server implements RageFW_Server {
|
||||
class Server {
|
||||
public register<EventName extends RageFW_ServerEvent>(
|
||||
eventName: EventName,
|
||||
callback: RageFW_ServerEventCallback<EventName>,
|
||||
@@ -19,34 +19,9 @@ class Server implements RageFW_Server {
|
||||
: (callback as (arg: typeof args) => void)(args)
|
||||
}),
|
||||
)
|
||||
// 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[]) =>
|
||||
// events[eventName as EventName](args),
|
||||
// ),
|
||||
// )
|
||||
}
|
||||
}
|
||||
|
||||
export const rage = {
|
||||
event: new Server(),
|
||||
}
|
||||
|
||||
rage.event.register('customServerEvent', (player, arg1, arg2) => {
|
||||
console.log(player, arg1, arg2)
|
||||
return true
|
||||
})
|
||||
|
||||
rage.event.registerMany({
|
||||
customServerEvent: (player, arg1, arg2) => {
|
||||
console.log(player, arg1, arg2)
|
||||
return true
|
||||
},
|
||||
playerDeath: (player, reason, killer) => {
|
||||
console.log(player, reason, killer)
|
||||
return undefined
|
||||
},
|
||||
})
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/// <reference types="@ragempcommunity/types-server" />
|
||||
|
||||
import { RageFW_ICustomServerEvent } from 'rage-fw-shared-types'
|
||||
|
||||
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<RageFW_ICustomServerEvent[K]>
|
||||
) => ReturnType<RageFW_ICustomServerEvent[K]>
|
||||
: K extends keyof IServerEvents
|
||||
? ThisifyServerEvents[K]
|
||||
: never
|
||||
Reference in New Issue
Block a user