forked from noxious/server
Major refractor, cleaning and improvements.
This commit is contained in:
@ -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)
|
||||
})
|
||||
}
|
||||
|
@ -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 {}
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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 {}
|
||||
|
@ -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
|
@ -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'
|
@ -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 {}
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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)
|
||||
}
|
||||
})
|
@ -8,7 +8,7 @@ type Payload = {
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle game master zone delete event
|
||||
* Handle game master zoneEditor delete event
|
||||
* @param socket
|
||||
* @param io
|
||||
*/
|
@ -8,7 +8,7 @@ interface IPayload {
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle game master zone request event
|
||||
* Handle game master zoneEditor request event
|
||||
* @param socket
|
||||
* @param io
|
||||
*/
|
@ -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)
|
@ -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();
|
||||
}
|
||||
})
|
||||
}
|
@ -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) {
|
Reference in New Issue
Block a user