1
0
forked from noxious/server

First try chat logics

This commit is contained in:
Dennis Postma 2024-08-19 18:55:41 +02:00
parent 910d8ad8f1
commit 706107ba4d
3 changed files with 47 additions and 5 deletions

6
package-lock.json generated
View File

@ -622,9 +622,9 @@
"license": "MIT"
},
"node_modules/@types/node": {
"version": "20.16.0",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.0.tgz",
"integrity": "sha512-vDxceJcoZhIVh67S568bm1UGZO0DX0hpplJZxzeXMKwIPLn190ec5RRxQ69BKhX44SUGIxxgMdDY557lGLKprQ==",
"version": "20.16.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.1.tgz",
"integrity": "sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==",
"license": "MIT",
"dependencies": {
"undici-types": "~6.19.2"

View File

@ -29,8 +29,8 @@ export default function (socket: TSocket, io: Server) {
const character: Character = await prisma.character.create({
data: {
name: data.name,
userId: user_id
// characterTypeId: 1 // @TODO set to chosen character type
userId: user_id,
characterTypeId: 1 // @TODO set to chosen character type
}
})

View File

@ -0,0 +1,42 @@
import { Server } from 'socket.io'
import { TSocket } from '../../utilities/Types'
import CharacterRepository from '../../repositories/CharacterRepository'
import ZoneRepository from '../../repositories/ZoneRepository'
type TypePayload = {
message: string
}
export default function (socket: TSocket, io: Server) {
socket.on('chat:send_message', async (data: TypePayload, callback: (response: boolean) => void) => {
console.log(`---User ${socket.character?.id} has sent a message via chat.`)
if (!data.message) {
console.log(`---Message not provided.`)
return
}
try {
const character = await CharacterRepository.getByUserAndId(socket.user?.id as number, socket.character?.id as number)
if (!character) {
console.log(`---Character not found.`)
return
}
const zone = await ZoneRepository.getById(character.zoneId)
if (!zone) {
console.log(`---Zone not found.`)
return
}
// send over zone and characters to socket
callback(true)
io.to(zone.id.toString()).emit('chat:message', {
character: character,
message: data.message
})
} catch (error: any) {
console.log(`---Error sending message: ${error.message}`)
}
})
}