From d2e1837e75f8f5da5e2df2e5548e6b4f4b98d2ad Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Mon, 9 Sep 2024 20:13:07 +0200 Subject: [PATCH] Merged code --- src/events/zone/characterJoin.ts | 7 +++++-- src/managers/characterManager.ts | 16 ++++++++-------- src/server.ts | 4 ++++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/events/zone/characterJoin.ts b/src/events/zone/characterJoin.ts index 02620d9..efc830f 100644 --- a/src/events/zone/characterJoin.ts +++ b/src/events/zone/characterJoin.ts @@ -4,6 +4,7 @@ import ZoneRepository from '../../repositories/zoneRepository' import ZoneManager from '../../managers/zoneManager' import { Character, Zone } from '@prisma/client' import logger from '../../utilities/logger' +import CharacterManager from '../../managers/characterManager' interface IPayload { zoneId: number @@ -49,10 +50,12 @@ 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.addCharacterToZone(zone.id, socket.character as Character) + CharacterManager.initCharacter(socket.character as ExtendedCharacter); + // ZoneManager.addCharacterToZone(zone.id, socket.character as Character) // send over zone and characters to socket - callback({ zone, characters: ZoneManager.getZoneById(zone.id)?.getCharacters() }) + callback({ zone, characters: CharacterManager.getCharactersInZone(zone) }) } catch (error: any) { logger.error(`Error requesting zone: ${error.message}`) socket.disconnect() diff --git a/src/managers/characterManager.ts b/src/managers/characterManager.ts index f1472e7..ac7e6a7 100644 --- a/src/managers/characterManager.ts +++ b/src/managers/characterManager.ts @@ -1,20 +1,20 @@ import { ExtendedCharacter } from '../utilities/types' import { Zone } from '@prisma/client' - class CharacterManager { - private characters!: ExtendedCharacter[]; - constructor() { - + public async boot() { + this.characters = []; } - public addCharacterToZone(character: ExtendedCharacter) { + public initCharacter(character: ExtendedCharacter) { this.characters = [...this.characters, character] } - public getCharactersByZone(zone: Zone) { - return this.characters.filter(x => x.zoneId === zone.id); + public getCharactersInZone(zone: Zone) { + return this.characters.filter(x => x.zoneId === zone.id); } -} \ No newline at end of file +} + +export default new CharacterManager(); \ No newline at end of file diff --git a/src/server.ts b/src/server.ts index 5d89e64..9da89d0 100644 --- a/src/server.ts +++ b/src/server.ts @@ -14,6 +14,7 @@ import { Authentication } from './middleware/authentication' // import CommandManager from './managers/CommandManager' import { Dirent } from 'node:fs' import logger from './utilities/logger' +import CharacterManager from './managers/characterManager' export class Server { private readonly app: Application @@ -74,6 +75,9 @@ export class Server { // Load zoneEditor manager await ZoneManager.boot() + // Load character manager + await CharacterManager.boot() + // Load command manager - Disabled for now // await CommandManager.boot(this.io);