1
0
forked from noxious/server

Major refractor, cleaning and improvements.

This commit is contained in:
2024-08-24 03:08:43 +02:00
parent e0b376cb83
commit 39f4e79a88
30 changed files with 123 additions and 69 deletions

View File

@ -20,7 +20,7 @@ export default function (socket: TSocket, io: Server) {
ZoneManager.removeCharacterFromZone(socket.character.zoneId, socket.character)
io.in(socket.character.zoneId.toString()).emit('zone:character:leave', socket.character.id)
io.in(socket.character.zoneId.toString()).emit('zoneEditor:character:leave', socket.character.id)
io.emit('character:disconnect', socket.character.id)
})
}

View File

@ -1,7 +1,7 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import { Object } from '@prisma/client'
import ObjectRepository from '../../../repositories/objectRepository'
import ObjectRepository from '../../../../repositories/objectRepository'
interface IPayload {}

View File

@ -1,8 +1,8 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import path from 'path'
import fs from 'fs'
import prisma from '../../../utilities/prisma'
import prisma from '../../../../utilities/prisma'
interface IPayload {
object: string

View File

@ -1,6 +1,6 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import prisma from '../../../utilities/prisma'
import { TSocket } from '../../../../utilities/types'
import prisma from '../../../../utilities/prisma'
type Payload = {
id: string

View File

@ -1,9 +1,9 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import { writeFile } from 'node:fs/promises'
import path from 'path'
import fs from 'fs/promises'
import prisma from '../../../utilities/prisma'
import prisma from '../../../../utilities/prisma'
interface IObjectData {
[key: string]: Buffer

View File

@ -1,8 +1,8 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import path from 'path'
import fs from 'fs/promises'
import prisma from '../../../utilities/prisma'
import prisma from '../../../../utilities/prisma'
/**
* Handle game master new sprite event

View File

@ -1,7 +1,7 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import { Sprite } from '@prisma/client'
import SpriteRepository from '../../../repositories/spriteRepository'
import SpriteRepository from '../../../../repositories/spriteRepository'
interface IPayload {}

View File

@ -1,8 +1,8 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import fs from 'fs'
import path from 'path'
import prisma from '../../../utilities/prisma'
import prisma from '../../../../utilities/prisma'
type Payload = {
id: string

View File

@ -1,6 +1,6 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import prisma from '../../../utilities/prisma'
import { TSocket } from '../../../../utilities/types'
import prisma from '../../../../utilities/prisma'
import type { Prisma, SpriteAction } from '@prisma/client'
import path from 'path'
import { writeFile, mkdir } from 'node:fs/promises'

View File

@ -1,7 +1,7 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import { Tile } from '@prisma/client'
import TileRepository from '../../../repositories/tileRepository'
import TileRepository from '../../../../repositories/tileRepository'
interface IPayload {}

View File

@ -1,8 +1,8 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import path from 'path'
import fs from 'fs'
import prisma from '../../../utilities/prisma'
import prisma from '../../../../utilities/prisma'
type Payload = {
id: string

View File

@ -1,6 +1,6 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import prisma from '../../../utilities/prisma'
import { TSocket } from '../../../../utilities/types'
import prisma from '../../../../utilities/prisma'
type Payload = {
id: string

View File

@ -1,9 +1,9 @@
import { Server } from 'socket.io'
import { TSocket } from '../../../utilities/types'
import { TSocket } from '../../../../utilities/types'
import { writeFile } from 'node:fs/promises'
import path from 'path'
import fs from 'fs/promises'
import prisma from '../../../utilities/prisma'
import prisma from '../../../../utilities/prisma'
interface ITileData {
[key: string]: Buffer

View File

@ -11,7 +11,7 @@ type Payload = {
}
/**
* Handle game master zone create event
* Handle game master zoneEditor create event
* @param socket
* @param io
*/
@ -36,10 +36,10 @@ export default function (socket: TSocket, io: Server) {
zoneList = await ZoneRepository.getAll()
callback(zoneList)
// send over zone and characters to socket
// send over zoneEditor and characters to socket
} catch (e) {
console.error(e)
socket.emit('notification', { message: 'Failed to create zone.' })
socket.emit('notification', { message: 'Failed to create zoneEditor.' })
callback(zoneList)
}
})

View File

@ -8,7 +8,7 @@ type Payload = {
}
/**
* Handle game master zone delete event
* Handle game master zoneEditor delete event
* @param socket
* @param io
*/

View File

@ -8,7 +8,7 @@ interface IPayload {
}
/**
* Handle game master zone request event
* Handle game master zoneEditor request event
* @param socket
* @param io
*/

View File

@ -26,7 +26,7 @@ interface IPayload {
}
/**
* Handle game master zone update event
* Handle game master zoneEditor update event
* @param socket
* @param io
*/
@ -66,9 +66,9 @@ export default function (socket: TSocket, io: Server) {
pvp: data.pvp,
zoneEventTiles: {
deleteMany: {
zoneId: data.zoneId // Ensure only event tiles related to the zone are deleted
zoneId: data.zoneId // Ensure only event tiles related to the zoneEditor are deleted
},
// Save new zone event tiles
// Save new zoneEditor event tiles
create: data.zoneEventTiles.map((zoneEventTile) => ({
type: zoneEventTile.type,
positionX: zoneEventTile.positionX,
@ -86,9 +86,9 @@ export default function (socket: TSocket, io: Server) {
},
zoneObjects: {
deleteMany: {
zoneId: data.zoneId // Ensure only objects related to the zone are deleted
zoneId: data.zoneId // Ensure only objects related to the zoneEditor are deleted
},
// Save new zone objects
// Save new zoneEditor objects
create: data.zoneObjects.map((zoneObject) => ({
objectId: zoneObject.objectId,
depth: zoneObject.depth,
@ -106,7 +106,7 @@ export default function (socket: TSocket, io: Server) {
return
}
// send over zone and characters to socket
// send over zoneEditor and characters to socket
socket.emit('gm:zone_editor:zone:load', zone)
zoneManager.unloadZone(data.zoneId)

View File

@ -1,5 +1,5 @@
import { Server } from 'socket.io'
import { TSocket } from '../../utilities/types'
import { ExtendedCharacter, TSocket } from '../../utilities/types'
import ZoneRepository from '../../repositories/zoneRepository'
import ZoneManager from '../../managers/zoneManager'
import { Character, Zone } from '@prisma/client'
@ -20,7 +20,7 @@ interface IResponse {
* @param io
*/
export default function (socket: TSocket, io: Server) {
socket.on('character:zone:request', async (data: IPayload, callback: (response: IResponse) => void) => {
socket.on('zone:characterJoin', async (data: IPayload, callback: (response: IResponse) => void) => {
try {
console.log(`---User ${socket.character?.id} has requested zone.`)
@ -43,11 +43,10 @@ export default function (socket: TSocket, io: Server) {
io.to(socket.character.zoneId.toString()).emit('zone:character:leave', socket.character)
}
socket.character.zoneId = zone.id
socket.join(zone.id.toString())
// let other clients know of new character
io.to(zone.id.toString()).emit('zone:character:join', socket.character)
io.to(zone.id.toString()).emit('zone:characterJoin', socket.character)
// add character to zone manager
ZoneManager.addCharacterToZone(zone.id, socket.character as Character)
@ -55,8 +54,8 @@ export default function (socket: TSocket, io: Server) {
// send over zone and characters to socket
callback({ zone, characters: ZoneManager.getCharactersInZone(zone.id) })
} catch (error: any) {
console.log(`Error requesting zone: ${error.message}`)
logger.error(`Error requesting zone: ${error.message}`)
socket.disconnect();
}
})
}

View File

@ -10,7 +10,7 @@ import { Character, Zone } from '@prisma/client'
* @param io
*/
export default function (socket: TSocket, io: Server) {
socket.on('character:zone:leave', async () => {
socket.on('zone:characterLeave', async () => {
console.log(`---Socket ${socket.character?.id} has leaved zone.`)
if (!socket.character) {