forked from noxious/server
24 lines
872 B
TypeScript
24 lines
872 B
TypeScript
import { Server } from 'socket.io'
|
|
import { TSocket, ExtendedCharacter } from '../../utilities/types'
|
|
import CharacterRepository from '../../repositories/characterRepository'
|
|
import CharacterManager from '../../managers/characterManager'
|
|
|
|
type SocketResponseT = {
|
|
character_id: number
|
|
}
|
|
|
|
export default function (socket: TSocket, io: Server) {
|
|
socket.on('character:connect', async (data: SocketResponseT) => {
|
|
console.log('character:connect requested', data)
|
|
try {
|
|
const character = await CharacterRepository.getByUserAndId(socket?.user?.id as number, data.character_id);
|
|
if(!character) return;
|
|
socket.characterId = character.id;
|
|
CharacterManager.initCharacter(character as ExtendedCharacter);
|
|
socket.emit('character:connect', character)
|
|
} catch (error: any) {
|
|
console.log('character:connect error', error)
|
|
}
|
|
})
|
|
}
|