forked from noxious/server
Joining, leaving rooms and teleporting works again + refactor
This commit is contained in:
@ -3,6 +3,7 @@ import Database from '#application/database'
|
||||
import ZoneManager from '#managers/zoneManager'
|
||||
import CharacterHairRepository from '#repositories/characterHairRepository'
|
||||
import CharacterRepository from '#repositories/characterRepository'
|
||||
import TeleportService from '#services/teleportService'
|
||||
|
||||
interface CharacterConnectPayload {
|
||||
characterId: number
|
||||
@ -59,21 +60,14 @@ export default class CharacterConnectEvent extends BaseEvent {
|
||||
// wait 300 ms, @TODO: Find a better way to do this
|
||||
await new Promise(resolve => setTimeout(resolve, 100))
|
||||
|
||||
const zone = ZoneManager.getZoneById(character.zone!.id)
|
||||
if (!zone) {
|
||||
this.logger.error('zone:character:join error: Zone not found')
|
||||
return
|
||||
}
|
||||
|
||||
zone.addCharacter(character)
|
||||
|
||||
const zoneCharacter = ZoneManager.getCharacterById(character.id)
|
||||
if (!zoneCharacter) {
|
||||
this.logger.error('zone:character:join error: Zone character not found')
|
||||
return
|
||||
}
|
||||
|
||||
await zoneCharacter.teleport(character.zone!.id, character.positionX, character.positionY)
|
||||
await TeleportService.teleportCharacter(character.id, {
|
||||
targetZoneId: character.zone!.id,
|
||||
targetX: character.positionX,
|
||||
targetY: character.positionY,
|
||||
rotation: character.rotation,
|
||||
isInitialJoin: true,
|
||||
character
|
||||
})
|
||||
} catch (error) {
|
||||
this.handleError('Failed to connect character', error)
|
||||
}
|
||||
|
Reference in New Issue
Block a user