diff --git a/src/events/character/charactersScreen/characterHairList.ts b/src/events/character/charactersScreen/characterHairList.ts index c1dacc5..2582aa4 100644 --- a/src/events/character/charactersScreen/characterHairList.ts +++ b/src/events/character/charactersScreen/characterHairList.ts @@ -1,5 +1,4 @@ import { BaseEvent } from '#application/base/baseEvent' -import Database from '#application/database' import { CharacterHair } from '#entities/characterHair' import characterHairRepository from '#repositories/characterHairRepository' @@ -12,8 +11,8 @@ export default class characterHairListEvent extends BaseEvent { private async handleEvent(data: IPayload, callback: (response: CharacterHair[]) => void): Promise { try { - const items: CharacterHair[] = await characterHairRepository.getAllSelectable() - await Database.getEntityManager().populate(items, ['sprite']) + const items: CharacterHair[] = await characterHairRepository.getAllSelectable(['sprite']) + return callback(items) } catch (error) { this.logger.error('character:hair:list error', error) diff --git a/src/events/character/connect.ts b/src/events/character/connect.ts index 4296d69..03be3bc 100644 --- a/src/events/character/connect.ts +++ b/src/events/character/connect.ts @@ -22,8 +22,10 @@ export default class CharacterConnectEvent extends BaseEvent { return } - /// DOWN HERE - const character = await CharacterRepository.getByUserAndId(this.socket.userId!, data.characterId, ['characterHair', 'characterHair']) + const character = await CharacterRepository.getByUserAndId(this.socket.userId!, data.characterId, [ + 'characterType', + 'characterHair' + ]) if (!character) { this.emitError('Character not found or does not belong to this user') diff --git a/src/events/gameMaster/assetManager/sprite/list.ts b/src/events/gameMaster/assetManager/sprite/list.ts index b8b0359..75879fd 100644 --- a/src/events/gameMaster/assetManager/sprite/list.ts +++ b/src/events/gameMaster/assetManager/sprite/list.ts @@ -14,7 +14,7 @@ export default class SpriteListEvent extends BaseEvent { if (!(await this.isCharacterGM())) return // get all sprites - const sprites = await SpriteRepository.getAll() + const sprites = await SpriteRepository.getAll(['*']) callback(sprites) } } diff --git a/src/repositories/characterHairRepository.ts b/src/repositories/characterHairRepository.ts index f4d216a..03d5ce6 100644 --- a/src/repositories/characterHairRepository.ts +++ b/src/repositories/characterHairRepository.ts @@ -23,10 +23,10 @@ class CharacterHairRepository extends BaseRepository { } } - async getAllSelectable(): Promise { + async getAllSelectable(populate?: any): Promise { try { const repository = this.em.getRepository(CharacterHair) - return await repository.find({ isSelectable: true }) + return await repository.find({ isSelectable: true }, { populate }) } catch (error: any) { this.logger.error(`Failed to get selectable character hair: ${error instanceof Error ? error.message : String(error)}`) return [] diff --git a/src/repositories/spriteRepository.ts b/src/repositories/spriteRepository.ts index b345ca9..efe6600 100644 --- a/src/repositories/spriteRepository.ts +++ b/src/repositories/spriteRepository.ts @@ -3,35 +3,23 @@ import { UUID } from '#application/types' import { Sprite } from '#entities/sprite' class SpriteRepository extends BaseRepository { - async getById(id: UUID) { + async getById(id: UUID, populate?: any) { try { const repository = this.em.getRepository(Sprite) - return await repository.findOne({ id }) + return await repository.findOne({ id }, { populate }) } catch (error: any) { return null } } - async getAll(): Promise { + async getAll(populate?: any): Promise { try { const repository = this.em.getRepository(Sprite) - return await repository.findAll() + return await repository.findAll({ populate }) } catch (error: any) { - return null + return [] } } - - // @TODO: THIS BROKEY - // async getSpriteActions(spriteId: string): Promise { - // try { - // const repository = this.em.getRepository(SpriteAction) - // return await repository.find({ - // sprite: spriteId - // }) - // } catch (error: any) { - // return null - // } - // } } export default new SpriteRepository()