1
0
forked from noxious/server

Converted socketEvents to new format

Still need to rework 'any' type Promises
This commit is contained in:
2024-09-22 18:35:07 +02:00
parent 81428ea0c2
commit a729371741
13 changed files with 279 additions and 202 deletions

View File

@ -7,18 +7,27 @@ type SocketResponseT = {
character_id: number
}
export default function (io: Server, socket: TSocket) {
socket.on('character:connect', async (data: SocketResponseT) => {
export default class CharacterConnectEvent {
constructor(
private readonly io: Server,
private readonly socket: TSocket
) {}
public listen(): void {
this.socket.on('character:connect', this.handleCharacterConnect.bind(this))
}
private async handleCharacterConnect(data: SocketResponseT): Promise<void> {
console.log('character:connect requested', data)
try {
const character = await CharacterRepository.getByUserAndId(socket?.user?.id as number, data.character_id)
const character = await CharacterRepository.getByUserAndId(this.socket?.user?.id as number, data.character_id)
if (!character) return
socket.characterId = character.id
this.socket.characterId = character.id
CharacterManager.initCharacter(character as ExtendedCharacter)
socket.emit('character:connect', character)
this.socket.emit('character:connect', character)
} catch (error: any) {
console.log('character:connect error', error)
}
})
}
}
}