forked from noxious/server
Refactor send chat logic
This commit is contained in:
parent
45e756fcd3
commit
e61aeed691
@ -32,7 +32,7 @@ export default class ChatMessageEvent extends BaseEvent {
|
|||||||
return callback(false)
|
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)
|
return callback(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,9 +6,10 @@ import { Chat } from '#entities/chat'
|
|||||||
import CharacterRepository from '#repositories/characterRepository'
|
import CharacterRepository from '#repositories/characterRepository'
|
||||||
import ChatRepository from '#repositories/chatRepository'
|
import ChatRepository from '#repositories/chatRepository'
|
||||||
import ZoneRepository from '#repositories/zoneRepository'
|
import ZoneRepository from '#repositories/zoneRepository'
|
||||||
|
import SocketManager from '#managers/socketManager'
|
||||||
|
|
||||||
class ChatService extends BaseService {
|
class ChatService extends BaseService {
|
||||||
async sendZoneMessage(io: Server, socket: TSocket, message: string, characterId: UUID, zoneId: UUID): Promise<boolean> {
|
async sendZoneMessage(characterId: UUID, zoneId: UUID, message: string): Promise<boolean> {
|
||||||
try {
|
try {
|
||||||
const character = await CharacterRepository.getById(characterId)
|
const character = await CharacterRepository.getById(characterId)
|
||||||
if (!character) return false
|
if (!character) return false
|
||||||
@ -16,15 +17,10 @@ class ChatService extends BaseService {
|
|||||||
const zone = await ZoneRepository.getById(zoneId)
|
const zone = await ZoneRepository.getById(zoneId)
|
||||||
if (!zone) return false
|
if (!zone) return false
|
||||||
|
|
||||||
const newChat = new Chat()
|
const chat = new Chat()
|
||||||
|
await chat.setCharacter(character).setZone(zone).setMessage(message).save()
|
||||||
newChat.setCharacter(character).setZone(zone).setMessage(message)
|
|
||||||
|
|
||||||
await newChat.save()
|
|
||||||
|
|
||||||
const chat = await ChatRepository.getById(newChat.id)
|
|
||||||
if (!chat) return false
|
|
||||||
|
|
||||||
|
const io = SocketManager.getIO()
|
||||||
io.to(zoneId).emit('chat:message', chat)
|
io.to(zoneId).emit('chat:message', chat)
|
||||||
return true
|
return true
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user