import { Server } from 'socket.io' import { TSocket } from '../utilities/types' import ZoneManager from '../managers/zoneManager' export default function (socket: TSocket, io: Server) { socket.on('disconnect', (data: any) => { if (!socket.user) { console.log('User disconnected but had no user set') return } io.emit('user:disconnect', socket.user.id) if (!socket.character) { console.log('User disconnected but had no character set') return } console.log('User disconnected along with their character') ZoneManager.removeCharacterFromZone(socket.character.zoneId, socket.character) io.in(socket.character.zoneId.toString()).emit('zone:character:leave', socket.character.id) io.emit('character:disconnect', socket.character.id) }) }