#140 : Individual log files
This commit is contained in:
@ -4,7 +4,7 @@ import { Character } from '@prisma/client'
|
||||
import CharacterRepository from '../../repositories/characterRepository'
|
||||
import { ZCharacterCreate } from '../../utilities/zodTypes'
|
||||
import prisma from '../../utilities/prisma'
|
||||
import logger from '../../utilities/logger'
|
||||
import { gameLogger } from '../../utilities/logger'
|
||||
|
||||
export default function (socket: TSocket, io: Server) {
|
||||
socket.on('character:create', async (data: any) => {
|
||||
@ -41,10 +41,10 @@ export default function (socket: TSocket, io: Server) {
|
||||
socket.emit('character:create:success')
|
||||
socket.emit('character:list', characters)
|
||||
|
||||
logger.info('character:create success')
|
||||
gameLogger.info('character:create success')
|
||||
} catch (error: any) {
|
||||
console.log(error)
|
||||
logger.error(`character:create error: ${error.message}`)
|
||||
gameLogger.error(`character:create error: ${error.message}`)
|
||||
return socket.emit('notification', { message: 'Could not create character. Please try again (later).' })
|
||||
}
|
||||
})
|
||||
|
@ -1,11 +1,9 @@
|
||||
import { Server } from 'socket.io'
|
||||
import { ExtendedCharacter, TSocket } from '../../../utilities/types'
|
||||
import { TSocket } from '../../../utilities/types'
|
||||
import { getArgs, isCommand } from '../../../utilities/chat'
|
||||
import CharacterRepository from '../../../repositories/characterRepository'
|
||||
import ZoneRepository from '../../../repositories/zoneRepository'
|
||||
import CharacterManager from '../../../managers/characterManager'
|
||||
import logger from '../../../utilities/logger'
|
||||
import prisma from '../../../utilities/prisma'
|
||||
import { gameMasterLogger } from '../../../utilities/logger'
|
||||
|
||||
type TypePayload = {
|
||||
message: string
|
||||
@ -76,11 +74,11 @@ export default class TeleportCommandEvent {
|
||||
})
|
||||
|
||||
this.socket.emit('notification', { title: 'Server message', message: `You have been teleported to ${zone.name}` })
|
||||
logger.info('teleport', `Character ${character.id} teleported to zone ${zone.id}`)
|
||||
gameMasterLogger.info('teleport', `Character ${character.id} teleported to zone ${zone.id}`)
|
||||
|
||||
callback(true)
|
||||
} catch (error: any) {
|
||||
logger.error(`Error in teleport command: ${error.message}`)
|
||||
gameMasterLogger.error(`Error in teleport command: ${error.message}`)
|
||||
this.socket.emit('notification', { title: 'Server message', message: 'An error occurred while teleporting' })
|
||||
}
|
||||
}
|
||||
|
@ -3,8 +3,7 @@ import { TSocket } from '../../utilities/types'
|
||||
import CharacterRepository from '../../repositories/characterRepository'
|
||||
import ZoneRepository from '../../repositories/zoneRepository'
|
||||
import { isCommand } from '../../utilities/chat'
|
||||
import logger from '../../utilities/logger'
|
||||
import CharacterManager from '../../managers/characterManager'
|
||||
import { gameLogger } from '../../utilities/logger'
|
||||
|
||||
type TypePayload = {
|
||||
message: string
|
||||
@ -29,14 +28,14 @@ export default class ChatMessageEvent {
|
||||
|
||||
const character = await CharacterRepository.getByUserAndId(this.socket.user?.id as number, this.socket.characterId as number)
|
||||
if (!character) {
|
||||
logger.error('chat:send_message error', 'Character not found')
|
||||
gameLogger.error('chat:send_message error', 'Character not found')
|
||||
callback(false)
|
||||
return
|
||||
}
|
||||
|
||||
const zone = await ZoneRepository.getById(character.zoneId)
|
||||
if (!zone) {
|
||||
logger.error('chat:send_message error', 'Zone not found')
|
||||
gameLogger.error('chat:send_message error', 'Zone not found')
|
||||
callback(false)
|
||||
return
|
||||
}
|
||||
@ -48,7 +47,7 @@ export default class ChatMessageEvent {
|
||||
message: data.message
|
||||
})
|
||||
} catch (error: any) {
|
||||
logger.error('chat:send_message error', error.message)
|
||||
gameLogger.error('chat:send_message error', error.message)
|
||||
callback(false)
|
||||
}
|
||||
}
|
||||
|
@ -5,9 +5,8 @@ import path from 'path'
|
||||
import fs from 'fs/promises'
|
||||
import prisma from '../../../../utilities/prisma'
|
||||
import sharp from 'sharp'
|
||||
import logger from '../../../../utilities/logger'
|
||||
import CharacterManager from '../../../../managers/characterManager'
|
||||
import characterRepository from '../../../../repositories/characterRepository'
|
||||
import { gameMasterLogger } from '../../../../utilities/logger'
|
||||
|
||||
interface IObjectData {
|
||||
[key: string]: Buffer
|
||||
@ -58,14 +57,14 @@ export default class ObjectUploadEvent {
|
||||
const finalFilePath = path.join(public_folder, filename)
|
||||
await writeFile(finalFilePath, objectData)
|
||||
|
||||
logger.info('gm:object:upload', `Object ${key} uploaded with id ${uuid}`)
|
||||
gameMasterLogger.info('gm:object:upload', `Object ${key} uploaded with id ${uuid}`)
|
||||
})
|
||||
|
||||
await Promise.all(uploadPromises)
|
||||
|
||||
callback(true)
|
||||
} catch (error: any) {
|
||||
logger.error('gm:object:upload error', error.message)
|
||||
gameMasterLogger.error('gm:object:upload error', error.message)
|
||||
callback(false)
|
||||
}
|
||||
}
|
||||
|
@ -3,8 +3,8 @@ import { TSocket } from '../../../../utilities/types'
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import prisma from '../../../../utilities/prisma'
|
||||
import logger from '../../../../utilities/logger'
|
||||
import CharacterManager from '../../../../managers/characterManager'
|
||||
import { gameMasterLogger } from '../../../../utilities/logger'
|
||||
|
||||
type Payload = {
|
||||
id: string
|
||||
@ -34,10 +34,10 @@ export default class GMSpriteDeleteEvent {
|
||||
await this.deleteSpriteFolder(data.id)
|
||||
await this.deleteSpriteFromDatabase(data.id)
|
||||
|
||||
logger.info(`Sprite ${data.id} deleted.`)
|
||||
gameMasterLogger.info(`Sprite ${data.id} deleted.`)
|
||||
callback(true)
|
||||
} catch (error: any) {
|
||||
logger.error('gm:sprite:delete error', error.message)
|
||||
gameMasterLogger.error('gm:sprite:delete error', error.message)
|
||||
callback(false)
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,8 @@ import fs from 'fs/promises'
|
||||
import { Server } from 'socket.io'
|
||||
import { TSocket } from '../../../../utilities/types'
|
||||
import prisma from '../../../../utilities/prisma'
|
||||
import logger from '../../../../utilities/logger'
|
||||
import CharacterManager from '../../../../managers/characterManager'
|
||||
import characterRepository from '../../../../repositories/characterRepository'
|
||||
import { gameMasterLogger } from '../../../../utilities/logger'
|
||||
|
||||
type Payload = {
|
||||
id: string
|
||||
@ -34,14 +33,14 @@ export default class GMTileDeleteEvent {
|
||||
}
|
||||
|
||||
try {
|
||||
logger.info(`Deleting tile ${data.id}`)
|
||||
gameMasterLogger.info(`Deleting tile ${data.id}`)
|
||||
await this.deleteTileFromDatabase(data.id)
|
||||
await this.deleteTileFile(data.id)
|
||||
|
||||
logger.info(`Tile ${data.id} deleted successfully.`)
|
||||
gameMasterLogger.info(`Tile ${data.id} deleted successfully.`)
|
||||
callback(true)
|
||||
} catch (error: any) {
|
||||
logger.error('gm:tile:delete error', error.message)
|
||||
gameMasterLogger.error('gm:tile:delete error', error.message)
|
||||
callback(false)
|
||||
}
|
||||
}
|
||||
@ -62,7 +61,7 @@ export default class GMTileDeleteEvent {
|
||||
if (error.code !== 'ENOENT') {
|
||||
throw error
|
||||
}
|
||||
logger.warn(`File ${finalFilePath} does not exist.`)
|
||||
gameMasterLogger.warn(`File ${finalFilePath} does not exist.`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,9 +4,8 @@ import { writeFile } from 'node:fs/promises'
|
||||
import path from 'path'
|
||||
import fs from 'fs/promises'
|
||||
import prisma from '../../../../utilities/prisma'
|
||||
import CharacterManager from '../../../../managers/characterManager'
|
||||
import characterRepository from '../../../../repositories/characterRepository'
|
||||
import logger from '../../../../utilities/logger'
|
||||
import { gameMasterLogger } from '../../../../utilities/logger'
|
||||
|
||||
interface ITileData {
|
||||
[key: string]: Buffer
|
||||
@ -48,7 +47,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
|
||||
callback(true)
|
||||
} catch (error) {
|
||||
console.error('Error uploading tile:', error)
|
||||
gameMasterLogger.error('Error uploading tile:', error)
|
||||
callback(false)
|
||||
}
|
||||
})
|
||||
|
@ -3,9 +3,8 @@ import { TSocket } from '../../../utilities/types'
|
||||
import ZoneRepository from '../../../repositories/zoneRepository'
|
||||
import { Zone } from '@prisma/client'
|
||||
import prisma from '../../../utilities/prisma'
|
||||
import CharacterManager from '../../../managers/characterManager'
|
||||
import characterRepository from '../../../repositories/characterRepository'
|
||||
import logger from '../../../utilities/logger'
|
||||
import { gameMasterLogger } from '../../../utilities/logger'
|
||||
|
||||
type Payload = {
|
||||
name: string
|
||||
@ -24,11 +23,11 @@ export default function (socket: TSocket, io: Server) {
|
||||
if (!character) return
|
||||
|
||||
if (character.role !== 'gm') {
|
||||
logger.info(`User ${character.id} tried to create zone but is not a game master.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to create zone but is not a game master.`)
|
||||
return
|
||||
}
|
||||
|
||||
logger.info(`User ${character.id} has created a new zone via zone editor.`)
|
||||
gameMasterLogger.info(`User ${character.id} has created a new zone via zone editor.`)
|
||||
|
||||
let zoneList: Zone[] = []
|
||||
try {
|
||||
|
@ -2,9 +2,8 @@ import { Server } from 'socket.io'
|
||||
import { TSocket } from '../../../utilities/types'
|
||||
import ZoneRepository from '../../../repositories/zoneRepository'
|
||||
import prisma from '../../../utilities/prisma'
|
||||
import CharacterManager from '../../../managers/characterManager'
|
||||
import characterRepository from '../../../repositories/characterRepository'
|
||||
import logger from '../../../utilities/logger'
|
||||
import { gameMasterLogger } from '../../../utilities/logger'
|
||||
|
||||
type Payload = {
|
||||
zoneId: number
|
||||
@ -21,11 +20,11 @@ export default function (socket: TSocket, io: Server) {
|
||||
if (!character) return
|
||||
|
||||
if (character.role !== 'gm') {
|
||||
logger.info(`User ${character.id} tried to delete zone but is not a game master.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to delete zone but is not a game master.`)
|
||||
return
|
||||
}
|
||||
|
||||
logger.info(`User ${character.id} has deleted a zone via zone editor.`)
|
||||
gameMasterLogger.info(`User ${character.id} has deleted a zone via zone editor.`)
|
||||
|
||||
try {
|
||||
const zone = await ZoneRepository.getById(data.zoneId)
|
||||
|
@ -2,9 +2,8 @@ import { Server } from 'socket.io'
|
||||
import { TSocket } from '../../../utilities/types'
|
||||
import { Zone } from '@prisma/client'
|
||||
import ZoneRepository from '../../../repositories/zoneRepository'
|
||||
import CharacterManager from '../../../managers/characterManager'
|
||||
import characterRepository from '../../../repositories/characterRepository'
|
||||
import logger from '../../../utilities/logger'
|
||||
import { gameMasterLogger } from '../../../utilities/logger'
|
||||
|
||||
interface IPayload {}
|
||||
|
||||
@ -19,11 +18,11 @@ export default function (socket: TSocket, io: Server) {
|
||||
if (!character) return
|
||||
|
||||
if (character.role !== 'gm') {
|
||||
logger.info(`User ${character.id} tried to list zones but is not a game master.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to list zones but is not a game master.`)
|
||||
return
|
||||
}
|
||||
|
||||
logger.info(`User ${character.id} has requested zone list via zone editor.`)
|
||||
gameMasterLogger.info(`User ${character.id} has requested zone list via zone editor.`)
|
||||
|
||||
try {
|
||||
const zones = await ZoneRepository.getAll()
|
||||
|
@ -1,10 +1,9 @@
|
||||
import { Server } from 'socket.io'
|
||||
import { TSocket } from '../../../utilities/types'
|
||||
import ZoneRepository from '../../../repositories/zoneRepository'
|
||||
import { Character, Zone } from '@prisma/client'
|
||||
import CharacterManager from '../../../managers/characterManager'
|
||||
import { Zone } from '@prisma/client'
|
||||
import characterRepository from '../../../repositories/characterRepository'
|
||||
import logger from '../../../utilities/logger'
|
||||
import { gameMasterLogger } from '../../../utilities/logger'
|
||||
|
||||
interface IPayload {
|
||||
zoneId: number
|
||||
@ -21,14 +20,14 @@ export default function (socket: TSocket, io: Server) {
|
||||
if (!character) return
|
||||
|
||||
if (character.role !== 'gm') {
|
||||
logger.info(`User ${character!.id} tried to request zone but is not a game master.`)
|
||||
gameMasterLogger.info(`User ${character!.id} tried to request zone but is not a game master.`)
|
||||
return
|
||||
}
|
||||
|
||||
logger.info(`User ${character.id} has requested zone via zone editor.`)
|
||||
gameMasterLogger.info(`User ${character.id} has requested zone via zone editor.`)
|
||||
|
||||
if (!data.zoneId) {
|
||||
logger.info(`User ${character.id} tried to request zone but did not provide a zone id.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to request zone but did not provide a zone id.`)
|
||||
return
|
||||
}
|
||||
|
||||
@ -36,7 +35,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
const zone = await ZoneRepository.getById(data.zoneId)
|
||||
|
||||
if (!zone) {
|
||||
logger.info(`User ${character.id} tried to request zone ${data.zoneId} but it does not exist.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to request zone ${data.zoneId} but it does not exist.`)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -1,12 +1,11 @@
|
||||
import { Server } from 'socket.io'
|
||||
import { TSocket } from '../../../utilities/types'
|
||||
import ZoneRepository from '../../../repositories/zoneRepository'
|
||||
import { Zone, ZoneEventTile, ZoneEventTileType, ZoneObject } from '@prisma/client'
|
||||
import { Zone, ZoneEventTileType, ZoneObject } from '@prisma/client'
|
||||
import prisma from '../../../utilities/prisma'
|
||||
import zoneManager from '../../../managers/zoneManager'
|
||||
import logger from '../../../utilities/logger'
|
||||
import CharacterManager from '../../../managers/characterManager'
|
||||
import characterRepository from '../../../repositories/characterRepository'
|
||||
import { gameMasterLogger } from '../../../utilities/logger'
|
||||
|
||||
interface IPayload {
|
||||
zoneId: number
|
||||
@ -39,14 +38,14 @@ export default function (socket: TSocket, io: Server) {
|
||||
if (!character) return
|
||||
|
||||
if (character.role !== 'gm') {
|
||||
logger.info(`User ${character.id} tried to update zone but is not a game master.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to update zone but is not a game master.`)
|
||||
return
|
||||
}
|
||||
|
||||
logger.info(`User ${character.id} has updated zone via zone editor.`)
|
||||
gameMasterLogger.info(`User ${character.id} has updated zone via zone editor.`)
|
||||
|
||||
if (!data.zoneId) {
|
||||
logger.info(`User ${character.id} tried to update zone but did not provide a zone id.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to update zone but did not provide a zone id.`)
|
||||
return
|
||||
}
|
||||
|
||||
@ -54,7 +53,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
let zone = await ZoneRepository.getById(data.zoneId)
|
||||
|
||||
if (!zone) {
|
||||
logger.info(`User ${character.id} tried to update zone ${data.zoneId} but it does not exist.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to update zone ${data.zoneId} but it does not exist.`)
|
||||
return
|
||||
}
|
||||
|
||||
@ -108,7 +107,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
zone = await ZoneRepository.getById(data.zoneId)
|
||||
|
||||
if (!zone) {
|
||||
logger.info(`User ${character.id} tried to update zone ${data.zoneId} but it does not exist.`)
|
||||
gameMasterLogger.info(`User ${character.id} tried to update zone ${data.zoneId} but it does not exist.`)
|
||||
return
|
||||
}
|
||||
|
||||
@ -117,7 +116,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
zoneManager.unloadZone(data.zoneId)
|
||||
await zoneManager.loadZone(zone)
|
||||
} catch (error: any) {
|
||||
logger.error(`Error updating zone: ${error.message}`)
|
||||
gameMasterLogger.error(`Error updating zone: ${error.message}`)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -1,10 +1,9 @@
|
||||
import { Server } from 'socket.io'
|
||||
import { ExtendedCharacter, TSocket } from '../../utilities/types'
|
||||
import { TSocket } from '../../utilities/types'
|
||||
import ZoneRepository from '../../repositories/zoneRepository'
|
||||
import ZoneManager from '../../managers/zoneManager'
|
||||
import { Character, Zone } from '@prisma/client'
|
||||
import logger from '../../utilities/logger'
|
||||
import CharacterManager from '../../managers/characterManager'
|
||||
import { gameLogger } from '../../utilities/logger'
|
||||
|
||||
interface IPayload {
|
||||
zoneId: number
|
||||
@ -58,7 +57,7 @@ export default function (socket: TSocket, io: Server) {
|
||||
// send over zone and characters to socket
|
||||
callback({ zone, characters: CharacterManager.getCharactersInZone(zone) })
|
||||
} catch (error: any) {
|
||||
logger.error(`Error requesting zone: ${error.message}`)
|
||||
gameLogger.error(`Error requesting zone: ${error.message}`)
|
||||
socket.disconnect()
|
||||
}
|
||||
})
|
||||
|
@ -2,7 +2,7 @@ import { Server } from 'socket.io'
|
||||
import { TSocket } from '../../utilities/types'
|
||||
import ZoneRepository from '../../repositories/zoneRepository'
|
||||
import CharacterManager from '../../managers/characterManager'
|
||||
import logger from '../../utilities/logger'
|
||||
import { gameLogger } from '../../utilities/logger'
|
||||
|
||||
export default class ZoneLeaveEvent {
|
||||
constructor(
|
||||
@ -18,19 +18,19 @@ export default class ZoneLeaveEvent {
|
||||
try {
|
||||
const character = CharacterManager.getCharacterFromSocket(this.socket);
|
||||
if (!character) {
|
||||
logger.error('zone:character:leave error', 'Character not found')
|
||||
gameLogger.error('zone:character:leave error', 'Character not found')
|
||||
return
|
||||
}
|
||||
|
||||
if (!character.zoneId) {
|
||||
logger.error('zone:character:leave error', 'Character not in a zone')
|
||||
gameLogger.error('zone:character:leave error', 'Character not in a zone')
|
||||
return
|
||||
}
|
||||
|
||||
const zone = await ZoneRepository.getById(character.zoneId)
|
||||
|
||||
if (!zone) {
|
||||
logger.error('zone:character:leave error', 'Zone not found')
|
||||
gameLogger.error('zone:character:leave error', 'Zone not found')
|
||||
return
|
||||
}
|
||||
|
||||
@ -42,9 +42,9 @@ export default class ZoneLeaveEvent {
|
||||
// remove character from zone manager
|
||||
await CharacterManager.removeCharacter(character)
|
||||
|
||||
logger.info('zone:character:leave', `Character ${character.id} left zone ${zone.id}`)
|
||||
gameLogger.info('zone:character:leave', `Character ${character.id} left zone ${zone.id}`)
|
||||
} catch (error: any) {
|
||||
logger.error('zone:character:leave error', error.message)
|
||||
gameLogger.error('zone:character:leave error', error.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,10 +5,8 @@ import { ZoneEventTileService } from '../../services/zoneEventTileService'
|
||||
import prisma from '../../utilities/prisma'
|
||||
import { ZoneEventTile, ZoneEventTileTeleport } from '@prisma/client'
|
||||
import Rotation from '../../utilities/character/rotation'
|
||||
import logger from '../../utilities/logger'
|
||||
import CharacterManager from '../../managers/characterManager'
|
||||
import zoneManager from '../../managers/zoneManager'
|
||||
import ZoneManager from '../../managers/zoneManager'
|
||||
import { gameLogger } from '../../utilities/logger'
|
||||
|
||||
export type ZoneEventTileWithTeleport = ZoneEventTile & {
|
||||
teleport: ZoneEventTileTeleport
|
||||
@ -35,12 +33,12 @@ export default class CharacterMove {
|
||||
private async handleCharacterMove({ positionX, positionY }: { positionX: number; positionY: number }): Promise<void> {
|
||||
let character = CharacterManager.getCharacterFromSocket(this.socket)
|
||||
if (!character) {
|
||||
logger.error('character:move error', 'Character not found')
|
||||
gameLogger.error('character:move error', 'Character not found')
|
||||
return
|
||||
}
|
||||
|
||||
if (!character) {
|
||||
logger.error('character:move error', 'character has not been initialized?')
|
||||
gameLogger.error('character:move error', 'character has not been initialized?')
|
||||
return
|
||||
}
|
||||
|
||||
@ -127,7 +125,7 @@ export default class CharacterMove {
|
||||
private async handleZoneEventTile(zoneEventTile: ZoneEventTileWithTeleport): Promise<void> {
|
||||
const character = CharacterManager.getCharacterFromSocket(this.socket)
|
||||
if (!character) {
|
||||
logger.error('character:move error', 'Character not found')
|
||||
gameLogger.error('character:move error', 'Character not found')
|
||||
return
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user