mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-12-23 15:00:37 +01:00
parent
f9a52ffc96
commit
3d66d2790f
3 changed files with 5 additions and 7 deletions
|
@ -155,7 +155,6 @@ import org.geysermc.geyser.inventory.recipe.GeyserStonecutterData;
|
||||||
import org.geysermc.geyser.level.JavaDimension;
|
import org.geysermc.geyser.level.JavaDimension;
|
||||||
import org.geysermc.geyser.level.WorldManager;
|
import org.geysermc.geyser.level.WorldManager;
|
||||||
import org.geysermc.geyser.level.physics.CollisionManager;
|
import org.geysermc.geyser.level.physics.CollisionManager;
|
||||||
import org.geysermc.geyser.network.GameProtocol;
|
|
||||||
import org.geysermc.geyser.network.netty.LocalSession;
|
import org.geysermc.geyser.network.netty.LocalSession;
|
||||||
import org.geysermc.geyser.registry.Registries;
|
import org.geysermc.geyser.registry.Registries;
|
||||||
import org.geysermc.geyser.registry.type.BlockMappings;
|
import org.geysermc.geyser.registry.type.BlockMappings;
|
||||||
|
|
|
@ -83,11 +83,8 @@ public class JavaRespawnTranslator extends PacketTranslator<ClientboundRespawnPa
|
||||||
|
|
||||||
String newDimension = packet.getDimension();
|
String newDimension = packet.getDimension();
|
||||||
if (!session.getDimension().equals(newDimension) || !packet.getWorldName().equals(session.getWorldName())) {
|
if (!session.getDimension().equals(newDimension) || !packet.getWorldName().equals(session.getWorldName())) {
|
||||||
// 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 or new dimension); send a fake dimension change
|
||||||
if (!packet.getWorldName().equals(session.getWorldName()) && (session.getDimension().equals(newDimension)
|
if (DimensionUtils.javaToBedrock(session.getDimension()) == DimensionUtils.javaToBedrock(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);
|
String fakeDim = DimensionUtils.getTemporaryDimension(session.getDimension(), newDimension);
|
||||||
DimensionUtils.switchDimension(session, fakeDim);
|
DimensionUtils.switchDimension(session, fakeDim);
|
||||||
}
|
}
|
||||||
|
|
|
@ -208,7 +208,9 @@ public class DimensionUtils {
|
||||||
// Prevents rare instances of Bedrock locking up
|
// Prevents rare instances of Bedrock locking up
|
||||||
return javaToBedrock(newDimension) == 2 ? OVERWORLD : NETHER;
|
return javaToBedrock(newDimension) == 2 ? OVERWORLD : NETHER;
|
||||||
}
|
}
|
||||||
return currentDimension.equals(OVERWORLD) ? NETHER : OVERWORLD;
|
// Check current Bedrock dimension and not just the Java dimension.
|
||||||
|
// Fixes rare instances like https://github.com/GeyserMC/Geyser/issues/3161
|
||||||
|
return javaToBedrock(currentDimension) == 0 ? NETHER : OVERWORLD;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isCustomBedrockNetherId() {
|
public static boolean isCustomBedrockNetherId() {
|
||||||
|
|
Loading…
Reference in a new issue