1
0
forked from noxious/server

27 lines
1.0 KiB
TypeScript

import { Server } from 'socket.io'
import { TSocket, ExtendedCharacter } from '../../utilities/types'
import CharacterRepository from '../../repositories/characterRepository'
import CharacterManager from '../../managers/characterManager'
import QueueManager from '../../managers/queueManager'
import SomeJob from '../../jobs/characterLeaveZone'
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
await QueueManager.addToQueue(SomeJob, { someParam: 'value' }, socket)
CharacterManager.initCharacter(character as ExtendedCharacter)
socket.emit('character:connect', character)
} catch (error: any) {
console.log('character:connect error', error)
}
})
}