diff --git a/src/events/chat/message.ts b/src/events/chat/message.ts index 5c3c141..addb4c5 100644 --- a/src/events/chat/message.ts +++ b/src/events/chat/message.ts @@ -15,14 +15,12 @@ export default class ChatMessageEvent extends BaseEvent { private async handleEvent(data: TypePayload, callback: (response: boolean) => void): Promise { try { - if (!data.message || ChatService.isCommand(data.message)) { - return callback(false) - } + if (!data.message || ChatService.isCommand(data.message)) return const mapCharacter = MapManager.getCharacterById(this.socket.characterId!) if (!mapCharacter) { this.logger.error('chat:message error', 'Character not found') - return callback(false) + return } const character = mapCharacter.character @@ -34,7 +32,7 @@ export default class ChatMessageEvent extends BaseEvent { return callback(false) } - if (await ChatService.sendMapMessage(character.getId(), map.getId(), data.message)) { + if (await ChatService.sendMapMessage(character.getId(), data.message)) { return callback(true) } diff --git a/src/services/chatService.ts b/src/services/chatService.ts index fb3c6e4..a05b094 100644 --- a/src/services/chatService.ts +++ b/src/services/chatService.ts @@ -7,22 +7,18 @@ import CharacterRepository from '@/repositories/characterRepository' import MapRepository from '@/repositories/mapRepository' class ChatService extends BaseService { - async sendMapMessage(characterId: UUID, mapId: UUID, message: string): Promise { + async sendMapMessage(characterId: UUID, message: string): Promise { try { const characterRepository = new CharacterRepository() - const mapRepository = new MapRepository() const character = await characterRepository.getById(characterId) if (!character) return false - const map = await mapRepository.getById(mapId) - if (!map) return false - const chat = new Chat() - await chat.setCharacter(character).setMap(map).setMessage(message).save() + await chat.setCharacter(character).setMap(character.map).setMessage(message).save() const io = SocketManager.getIO() - io.to(mapId).emit(SocketEvent.CHAT_MESSAGE, chat) + io.to(character.map.id).emit(SocketEvent.CHAT_MESSAGE, { character: character.getName(), message: message }) return true } catch (error: any) { this.logger.error(`Failed to save chat message: ${error instanceof Error ? error.message : String(error)}`)