forked from noxious/server
Merged code
This commit is contained in:
parent
d7f441d570
commit
d2e1837e75
@ -4,6 +4,7 @@ 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'
|
||||
|
||||
interface IPayload {
|
||||
zoneId: number
|
||||
@ -49,10 +50,12 @@ export default function (socket: TSocket, io: Server) {
|
||||
io.to(zone.id.toString()).emit('zone:character:join', socket.character)
|
||||
|
||||
// add character to zone manager
|
||||
ZoneManager.getZoneById(zone.id)?.addCharacter(socket.character as Character)
|
||||
// ZoneManager.addCharacterToZone(zone.id, socket.character as Character)
|
||||
CharacterManager.initCharacter(socket.character as ExtendedCharacter);
|
||||
// ZoneManager.addCharacterToZone(zone.id, socket.character as Character)
|
||||
|
||||
// send over zone and characters to socket
|
||||
callback({ zone, characters: ZoneManager.getZoneById(zone.id)?.getCharacters() })
|
||||
callback({ zone, characters: CharacterManager.getCharactersInZone(zone) })
|
||||
} catch (error: any) {
|
||||
logger.error(`Error requesting zone: ${error.message}`)
|
||||
socket.disconnect()
|
||||
|
@ -1,20 +1,20 @@
|
||||
import { ExtendedCharacter } from '../utilities/types'
|
||||
import { Zone } from '@prisma/client'
|
||||
|
||||
|
||||
class CharacterManager {
|
||||
|
||||
private characters!: ExtendedCharacter[];
|
||||
|
||||
constructor() {
|
||||
|
||||
public async boot() {
|
||||
this.characters = [];
|
||||
}
|
||||
|
||||
public addCharacterToZone(character: ExtendedCharacter) {
|
||||
public initCharacter(character: ExtendedCharacter) {
|
||||
this.characters = [...this.characters, character]
|
||||
}
|
||||
|
||||
public getCharactersByZone(zone: Zone) {
|
||||
return this.characters.filter(x => x.zoneId === zone.id);
|
||||
public getCharactersInZone(zone: Zone) {
|
||||
return this.characters.filter(x => x.zoneId === zone.id);
|
||||
}
|
||||
}
|
||||
|
||||
export default new CharacterManager();
|
@ -14,6 +14,7 @@ import { Authentication } from './middleware/authentication'
|
||||
// import CommandManager from './managers/CommandManager'
|
||||
import { Dirent } from 'node:fs'
|
||||
import logger from './utilities/logger'
|
||||
import CharacterManager from './managers/characterManager'
|
||||
|
||||
export class Server {
|
||||
private readonly app: Application
|
||||
@ -74,6 +75,9 @@ export class Server {
|
||||
// Load zoneEditor manager
|
||||
await ZoneManager.boot()
|
||||
|
||||
// Load character manager
|
||||
await CharacterManager.boot()
|
||||
|
||||
// Load command manager - Disabled for now
|
||||
// await CommandManager.boot(this.io);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user