1
0
forked from noxious/server

Small improvement teleports

This commit is contained in:
Dennis Postma 2025-02-16 18:47:44 +01:00
parent f2dd1a2ffe
commit 1191e6bf55
3 changed files with 8 additions and 7 deletions

View File

@ -44,10 +44,6 @@ class MapManager {
.find((char) => char.character.id === characterId) ?? null
)
}
public removeCharacter(characterId: UUID): void {
Object.values(this.maps).forEach((map) => map.removeCharacter(characterId))
}
}
export default new MapManager()

View File

@ -39,7 +39,11 @@ class MapCharacter {
// Leave map and remove from manager
socket.leave(this.character.map.id)
MapManager.removeCharacter(this.character.id)
const map = MapManager.getMapById(this.character.map.id)
if (map) {
await map.removeCharacter(this.character.id)
}
// Notify map players
io.in(this.character.map.id).emit(SocketEvent.MAP_CHARACTER_LEAVE, this.character.id)

View File

@ -48,6 +48,7 @@ class CharacterTeleportService {
try {
const currentMapId = mapCharacter.character.map?.id
const currentMap = MapManager.getMapById(currentMapId!)
const io = SocketManager.getIO()
// Update character position and map
@ -67,9 +68,9 @@ class CharacterTeleportService {
}
// Handle current map cleanup
if (currentMapId) {
if (currentMapId && currentMap) {
socket.leave(currentMapId)
MapManager.removeCharacter(characterId)
await currentMap.removeCharacter(characterId)
io.in(currentMapId).emit(SocketEvent.MAP_CHARACTER_LEAVE, characterId)
}