import { BaseEvent } from '#application/base/baseEvent' import { Tile } from '#entities/tile' import TileRepository from '#repositories/tileRepository' interface IPayload {} export default class TileListEven extends BaseEvent { public listen(): void { this.socket.on('gm:tile:list', this.handleEvent.bind(this)) } private async handleEvent(data: IPayload, callback: (response: Tile[]) => void): Promise { try { if (!(await this.isCharacterGM())) return // Get all tiles const tileRepository = new TileRepository() const tiles = await tileRepository.getAll() return callback(tiles) } catch (error) { this.logger.error('gm:tile:list error', error) return callback([]) } } }