From e61aeed69199bd50ebb38c9e9c23e1791a04fc56 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Wed, 1 Jan 2025 21:57:24 +0100 Subject: [PATCH] Refactor send chat logic --- src/events/chat/message.ts | 2 +- src/services/chatService.ts | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/events/chat/message.ts b/src/events/chat/message.ts index 5f4f8b1..78c9ee1 100644 --- a/src/events/chat/message.ts +++ b/src/events/chat/message.ts @@ -32,7 +32,7 @@ export default class ChatMessageEvent extends BaseEvent { return callback(false) } - if (await ChatService.sendZoneMessage(this.io, this.socket, data.message, character.id, zone.id)) { + if (await ChatService.sendZoneMessage(character.id, zone.id, data.message)) { return callback(true) } diff --git a/src/services/chatService.ts b/src/services/chatService.ts index 0bab805..1c639fe 100644 --- a/src/services/chatService.ts +++ b/src/services/chatService.ts @@ -6,9 +6,10 @@ import { Chat } from '#entities/chat' import CharacterRepository from '#repositories/characterRepository' import ChatRepository from '#repositories/chatRepository' import ZoneRepository from '#repositories/zoneRepository' +import SocketManager from '#managers/socketManager' class ChatService extends BaseService { - async sendZoneMessage(io: Server, socket: TSocket, message: string, characterId: UUID, zoneId: UUID): Promise { + async sendZoneMessage(characterId: UUID, zoneId: UUID, message: string): Promise { try { const character = await CharacterRepository.getById(characterId) if (!character) return false @@ -16,15 +17,10 @@ class ChatService extends BaseService { const zone = await ZoneRepository.getById(zoneId) if (!zone) return false - const newChat = new Chat() - - newChat.setCharacter(character).setZone(zone).setMessage(message) - - await newChat.save() - - const chat = await ChatRepository.getById(newChat.id) - if (!chat) return false + const chat = new Chat() + await chat.setCharacter(character).setZone(zone).setMessage(message).save() + const io = SocketManager.getIO() io.to(zoneId).emit('chat:message', chat) return true } catch (error: any) {