diff --git a/src/app/events/character/CharacterZoneRequest.ts b/src/app/events/character/CharacterZoneRequest.ts index 76f1383..d899bbc 100644 --- a/src/app/events/character/CharacterZoneRequest.ts +++ b/src/app/events/character/CharacterZoneRequest.ts @@ -8,13 +8,18 @@ interface IPayload { zoneId: number; } +interface IResponse { + zone: Zone; + characters: Character[]; +} + /** * Handle character zone request event * @param socket * @param io */ export default function (socket: TSocket, io: Server) { - socket.on('character:zone:request', async (data: IPayload) => { + socket.on('character:zone:request', async (data: IPayload, callback: (response: IResponse) => void) => { console.log(`---User ${socket.character?.id} has requested zone.`); if (!data.zoneId) { @@ -32,10 +37,7 @@ export default function (socket: TSocket, io: Server) { socket.join(zone.id.toString()); // send over zone and characters to socket - socket.emit('character:zone:load', { - zone: zone, - characters: ZoneManager.getCharactersInZone(zone.id), - }); + callback({zone, characters: ZoneManager.getCharactersInZone(zone.id)}); // let other clients know of new character io.to(zone.id.toString()).emit('zone:character:join', socket.character); @@ -43,9 +45,4 @@ export default function (socket: TSocket, io: Server) { // add character to zone manager ZoneManager.addCharacterToZone(zone.id, socket.character as Character); }); -} - -/** - * Resources: - * https://stackoverflow.com/questions/6873607/socket-io-rooms-difference-between-broadcast-to-and-sockets-in - */ \ No newline at end of file +} \ No newline at end of file diff --git a/src/app/utilities/Types.ts b/src/app/utilities/Types.ts index af024cf..33b8a6c 100644 --- a/src/app/utilities/Types.ts +++ b/src/app/utilities/Types.ts @@ -1,5 +1,5 @@ import { Socket } from 'socket.io'; -import {Character, Character as ICharacter, User} from "@prisma/client"; +import {Character, User} from "@prisma/client"; export type TSocket = Socket & { user?: User @@ -18,7 +18,7 @@ export type TSocket = Socket & { export type TCharacter = Socket & { user?: User, - character?: ICharacter + character?: Character } export type TZoneCharacter = Character & {