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 (io: Server, socket: TSocket) { 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) } }) }