25 lines
870 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 (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)
}
})
}