From 7e15a93af15ba0872d3c27ae4bab3448f7752140 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Thu, 26 Oct 2023 04:39:32 -0700 Subject: [PATCH] Fix stuff in rogue instances "not despawning" --- src/main/java/emu/lunarcore/game/player/Player.java | 2 +- src/main/java/emu/lunarcore/game/rogue/RogueInstance.java | 2 +- src/main/java/emu/lunarcore/game/scene/Scene.java | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/emu/lunarcore/game/player/Player.java b/src/main/java/emu/lunarcore/game/player/Player.java index 3d285b8..ef02681 100644 --- a/src/main/java/emu/lunarcore/game/player/Player.java +++ b/src/main/java/emu/lunarcore/game/player/Player.java @@ -489,7 +489,7 @@ public class Player { // Get scene that we want to enter Scene nextScene = null; - if (getScene() != null && getScene().getPlaneId() == planeId && getScene().getFloorId() == floorId) { + if (getScene() != null && getScene().getPlaneId() == planeId && getScene().getFloorId() == floorId && getScene().getPlaneType() != PlaneType.Rogue) { // Don't create a new scene if were already in the one we want to teleport to nextScene = this.scene; } else { diff --git a/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java b/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java index 2b31d06..cfe6168 100644 --- a/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java +++ b/src/main/java/emu/lunarcore/game/rogue/RogueInstance.java @@ -62,7 +62,7 @@ public class RogueInstance { return this.getRoomBySiteId(this.getCurrentSiteId()); } - public RogueRoomData enterRoom(int siteId) { + public synchronized RogueRoomData enterRoom(int siteId) { // Set status on previous room RogueRoomData prevRoom = getCurrentRoom(); if (prevRoom != null) { diff --git a/src/main/java/emu/lunarcore/game/scene/Scene.java b/src/main/java/emu/lunarcore/game/scene/Scene.java index 8bde187..e5916ab 100644 --- a/src/main/java/emu/lunarcore/game/scene/Scene.java +++ b/src/main/java/emu/lunarcore/game/scene/Scene.java @@ -94,6 +94,10 @@ public class Scene { this.loaded = true; } + public PlaneType getPlaneType() { + return this.getExcel().getPlaneType(); + } + private void initSpawns() { for (GroupInfo group : getFloorInfo().getGroups().values()) { // Skip non-server groups