import { BaseEvent } from '#application/base/baseEvent' import { CharacterHair } from '#entities/characterHair' import CharacterHairRepository from '#repositories/characterHairRepository' interface IPayload {} export default class characterHairListEvent extends BaseEvent { public listen(): void { this.socket.on('gm:characterHair:list', this.handleEvent.bind(this)) } private async handleEvent(data: IPayload, callback: (response: CharacterHair[]) => void): Promise { try { if (!(await this.isCharacterGM())) return const characterHairRepository = new CharacterHairRepository() const items = await characterHairRepository.getAll() await characterHairRepository.getEntityManager().populate(items, ['sprite']) return callback(items) } catch (error) { this.logger.error('gm:characterHair:list error', error) return callback([]) } } }