From d7f441d570fe7782497004145686680891b2e3ce Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Mon, 9 Sep 2024 19:27:33 +0200 Subject: [PATCH] stash work --- src/events/zone/characterJoin.ts | 4 ++-- src/managers/characterManager.ts | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/managers/characterManager.ts diff --git a/src/events/zone/characterJoin.ts b/src/events/zone/characterJoin.ts index 80d86d2..02620d9 100644 --- a/src/events/zone/characterJoin.ts +++ b/src/events/zone/characterJoin.ts @@ -49,10 +49,10 @@ export default function (socket: TSocket, io: Server) { io.to(zone.id.toString()).emit('zone:character:join', socket.character) // add character to zone manager - ZoneManager.getZoneById(zone.id).addCharacter(socket.character as Character) + ZoneManager.getZoneById(zone.id)?.addCharacter(socket.character as Character) // send over zone and characters to socket - callback({ zone, characters: ZoneManager.getZoneById(zone.id).getCharacters() }) + callback({ zone, characters: ZoneManager.getZoneById(zone.id)?.getCharacters() }) } catch (error: any) { logger.error(`Error requesting zone: ${error.message}`) socket.disconnect() diff --git a/src/managers/characterManager.ts b/src/managers/characterManager.ts new file mode 100644 index 0000000..f1472e7 --- /dev/null +++ b/src/managers/characterManager.ts @@ -0,0 +1,20 @@ +import { ExtendedCharacter } from '../utilities/types' +import { Zone } from '@prisma/client' + + +class CharacterManager { + + private characters!: ExtendedCharacter[]; + + constructor() { + + } + + public addCharacterToZone(character: ExtendedCharacter) { + this.characters = [...this.characters, character] + } + + public getCharactersByZone(zone: Zone) { + return this.characters.filter(x => x.zoneId === zone.id); + } +} \ No newline at end of file