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) } }) }