forked from noxious/server
27 lines
1.0 KiB
TypeScript
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)
|
|
}
|
|
})
|
|
}
|