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