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:
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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) {
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user