import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import { Item } from '@/entities/item' import ItemRepository from '@/repositories/itemRepository' interface IPayload {} export default class ItemListEvent extends BaseEvent { public listen(): void { this.socket.on(SocketEvent.GM_ITEM_LIST, this.handleEvent.bind(this)) } private async handleEvent(data: IPayload, callback: (response: Item[]) => void): Promise { try { if (!(await this.isCharacterGM())) return const itemRepository = new ItemRepository() const items = await itemRepository.getAll() return callback(items) } catch (error) { this.logger.error('gm:item:list error', error) return callback([]) } } }