1
0
forked from noxious/server

#174: Refactor character manager into zoneManager for better DX, major refactor of time and weather system (data is stored in DB now instead of JSON file), npm update, npm format, many other improvements

This commit is contained in:
2024-11-13 13:21:01 +01:00
parent 628b3bf1fa
commit d4e0cbe398
43 changed files with 465 additions and 461 deletions

View File

@ -3,7 +3,7 @@ import { TSocket } from '../../utilities/types'
import CharacterRepository from '../../repositories/characterRepository'
type SocketResponseT = {
character_id: number
characterId: number
}
export default class CharacterConnectEvent {
@ -19,7 +19,7 @@ export default class CharacterConnectEvent {
private async handleCharacterConnect(data: SocketResponseT): Promise<void> {
console.log('character:connect requested', data)
try {
const character = await CharacterRepository.getByUserAndId(this.socket?.user?.id as number, data.character_id)
const character = await CharacterRepository.getByUserAndId(this.socket?.userId!, data.characterId!)
if (!character) return
this.socket.characterId = character.id

View File

@ -23,7 +23,7 @@ export default class CharacterCreateEvent {
try {
data = ZCharacterCreate.parse(data)
const user_id = this.socket.user?.id as number
const user_id = this.socket.userId!
// Check if character name already exists
const characterExists = await CharacterRepository.getByName(data.name)

View File

@ -4,7 +4,7 @@ import { Character, Zone } from '@prisma/client'
import CharacterRepository from '../../repositories/characterRepository'
type TypePayload = {
character_id: number
characterId: number
}
type TypeResponse = {
@ -23,12 +23,10 @@ export default class CharacterDeleteEvent {
}
private async handleCharacterDelete(data: TypePayload, callback: (response: TypeResponse) => void): Promise<any> {
// zod validate
try {
await CharacterRepository.deleteByUserIdAndId(this.socket.user?.id as number, data.character_id as number)
await CharacterRepository.deleteByUserIdAndId(this.socket.userId!, data.characterId!)
const user_id = this.socket.user?.id as number
const characters: Character[] = (await CharacterRepository.getByUserId(user_id)) as Character[]
const characters: Character[] = (await CharacterRepository.getByUserId(this.socket.userId!)) as Character[]
this.socket.emit('character:list', characters)
} catch (error: any) {

View File

@ -2,6 +2,7 @@ import { Socket, Server } from 'socket.io'
import { TSocket } from '../../utilities/types'
import { Character } from '@prisma/client'
import CharacterRepository from '../../repositories/characterRepository'
import { gameLogger } from '../../utilities/logger'
export default class CharacterListEvent {
constructor(
@ -15,12 +16,10 @@ export default class CharacterListEvent {
private async handleCharacterList(data: any): Promise<void> {
try {
console.log('character:list requested')
const user_id = this.socket.user?.id as number
const characters: Character[] = (await CharacterRepository.getByUserId(user_id)) as Character[]
const characters: Character[] = (await CharacterRepository.getByUserId(this.socket.userId!)) as Character[]
this.socket.emit('character:list', characters)
} catch (error: any) {
console.log('character:list error', error)
gameLogger.error('character:list error', error.message)
}
}
}