From 7ae27c79e807732ce2e917280fc505e142acf11c Mon Sep 17 00:00:00 2001 From: Camotoy <20743703+Camotoy@users.noreply.github.com> Date: Thu, 1 Jul 2021 08:48:22 -0400 Subject: [PATCH] Ensure that the player never dimension switches to the same dimension Fixes #2342 --- .../network/translators/java/JavaRespawnTranslator.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaRespawnTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaRespawnTranslator.java index 908292d36..42f572e14 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaRespawnTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/JavaRespawnTranslator.java @@ -83,8 +83,11 @@ public class JavaRespawnTranslator extends PacketTranslator String newDimension = DimensionUtils.getNewDimension(packet.getDimension()); if (!session.getDimension().equals(newDimension) || !packet.getWorldName().equals(session.getWorldName())) { - if (!packet.getWorldName().equals(session.getWorldName()) && session.getDimension().equals(newDimension)) { - // Switching to a new world (based off the world name change); send a fake dimension change + // Switching to a new world (based off the world name change); send a fake dimension change + if (!packet.getWorldName().equals(session.getWorldName()) && (session.getDimension().equals(newDimension) + // Ensure that the player never ever dimension switches to the same dimension - BAD + // Can likely be removed if the Above Bedrock Nether Building option can be removed + || DimensionUtils.javaToBedrock(session.getDimension()) == DimensionUtils.javaToBedrock(newDimension))) { String fakeDim = DimensionUtils.getTemporaryDimension(session.getDimension(), newDimension); DimensionUtils.switchDimension(session, fakeDim); }