Mirror von
https://github.com/GeyserMC/Geyser.git
synchronisiert 2024-12-26 16:12:46 +01:00
(Should) remove unneeded messages about incorrect chunk heights
Dieser Commit ist enthalten in:
Ursprung
b1d832dded
Commit
7d84928627
@ -99,16 +99,10 @@ public class JavaLoginTranslator extends PacketTranslator<ClientboundLoginPacket
|
|||||||
if (needsSpawnPacket) {
|
if (needsSpawnPacket) {
|
||||||
// The player has yet to spawn so let's do that using some of the information in this Java packet
|
// The player has yet to spawn so let's do that using some of the information in this Java packet
|
||||||
session.setDimension(newDimension);
|
session.setDimension(newDimension);
|
||||||
session.setDimensionType(dimensions.get(newDimension));
|
|
||||||
ChunkUtils.loadDimension(session);
|
|
||||||
session.connect();
|
session.connect();
|
||||||
|
|
||||||
// It is now safe to send these packets
|
// It is now safe to send these packets
|
||||||
session.getUpstream().sendPostStartGamePackets();
|
session.getUpstream().sendPostStartGamePackets();
|
||||||
} else if (!session.isSpawned()) {
|
|
||||||
// Called for online mode, being presented with a GUI before logging ing
|
|
||||||
session.setDimensionType(dimensions.get(newDimension));
|
|
||||||
ChunkUtils.loadDimension(session);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AdventureSettingsPacket bedrockPacket = new AdventureSettingsPacket();
|
AdventureSettingsPacket bedrockPacket = new AdventureSettingsPacket();
|
||||||
@ -151,5 +145,7 @@ public class JavaLoginTranslator extends PacketTranslator<ClientboundLoginPacket
|
|||||||
// If the player is spawning into the "fake" nether, send them some fog
|
// If the player is spawning into the "fake" nether, send them some fog
|
||||||
session.sendFog("minecraft:fog_hell");
|
session.sendFog("minecraft:fog_hell");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ChunkUtils.loadDimension(session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ import org.geysermc.geyser.session.GeyserSession;
|
|||||||
import org.geysermc.geyser.translator.inventory.InventoryTranslator;
|
import org.geysermc.geyser.translator.inventory.InventoryTranslator;
|
||||||
import org.geysermc.geyser.translator.protocol.PacketTranslator;
|
import org.geysermc.geyser.translator.protocol.PacketTranslator;
|
||||||
import org.geysermc.geyser.translator.protocol.Translator;
|
import org.geysermc.geyser.translator.protocol.Translator;
|
||||||
|
import org.geysermc.geyser.util.ChunkUtils;
|
||||||
import org.geysermc.geyser.util.DimensionUtils;
|
import org.geysermc.geyser.util.DimensionUtils;
|
||||||
|
|
||||||
@Translator(packet = ClientboundRespawnPacket.class)
|
@Translator(packet = ClientboundRespawnPacket.class)
|
||||||
@ -92,6 +93,8 @@ public class JavaRespawnTranslator extends PacketTranslator<ClientboundRespawnPa
|
|||||||
}
|
}
|
||||||
session.setWorldName(packet.getWorldName());
|
session.setWorldName(packet.getWorldName());
|
||||||
DimensionUtils.switchDimension(session, newDimension);
|
DimensionUtils.switchDimension(session, newDimension);
|
||||||
|
|
||||||
|
ChunkUtils.loadDimension(session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -222,7 +222,8 @@ public class ChunkUtils {
|
|||||||
* This must be done after the player has switched dimensions so we know what their dimension is
|
* This must be done after the player has switched dimensions so we know what their dimension is
|
||||||
*/
|
*/
|
||||||
public static void loadDimension(GeyserSession session) {
|
public static void loadDimension(GeyserSession session) {
|
||||||
JavaDimension dimension = session.getDimensionType();
|
JavaDimension dimension = session.getDimensions().get(session.getDimension());
|
||||||
|
session.setDimensionType(dimension);
|
||||||
int minY = dimension.minY();
|
int minY = dimension.minY();
|
||||||
int maxY = dimension.maxY();
|
int maxY = dimension.maxY();
|
||||||
|
|
||||||
@ -233,13 +234,7 @@ public class ChunkUtils {
|
|||||||
throw new RuntimeException("Maximum Y must be a multiple of 16!");
|
throw new RuntimeException("Maximum Y must be a multiple of 16!");
|
||||||
}
|
}
|
||||||
|
|
||||||
BedrockDimension bedrockDimension = switch (session.getDimension()) {
|
BedrockDimension bedrockDimension = session.getChunkCache().getBedrockDimension();
|
||||||
case DimensionUtils.THE_END -> BedrockDimension.THE_END;
|
|
||||||
case DimensionUtils.NETHER -> DimensionUtils.isCustomBedrockNetherId() ? BedrockDimension.THE_END : BedrockDimension.THE_NETHER;
|
|
||||||
default -> BedrockDimension.OVERWORLD;
|
|
||||||
};
|
|
||||||
session.getChunkCache().setBedrockDimension(bedrockDimension);
|
|
||||||
|
|
||||||
// Yell in the console if the world height is too height in the current scenario
|
// Yell in the console if the world height is too height in the current scenario
|
||||||
// The constraints change depending on if the player is in the overworld or not, and if experimental height is enabled
|
// The constraints change depending on if the player is in the overworld or not, and if experimental height is enabled
|
||||||
// (Ignore this for the Nether. We can't change that at the moment without the workaround. :/ )
|
// (Ignore this for the Nether. We can't change that at the moment without the workaround. :/ )
|
||||||
|
@ -32,6 +32,7 @@ import com.nukkitx.protocol.bedrock.packet.ChunkRadiusUpdatedPacket;
|
|||||||
import com.nukkitx.protocol.bedrock.packet.MobEffectPacket;
|
import com.nukkitx.protocol.bedrock.packet.MobEffectPacket;
|
||||||
import com.nukkitx.protocol.bedrock.packet.StopSoundPacket;
|
import com.nukkitx.protocol.bedrock.packet.StopSoundPacket;
|
||||||
import org.geysermc.geyser.entity.type.Entity;
|
import org.geysermc.geyser.entity.type.Entity;
|
||||||
|
import org.geysermc.geyser.level.BedrockDimension;
|
||||||
import org.geysermc.geyser.session.GeyserSession;
|
import org.geysermc.geyser.session.GeyserSession;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -94,8 +95,11 @@ public class DimensionUtils {
|
|||||||
changeDimensionPacket.setPosition(pos);
|
changeDimensionPacket.setPosition(pos);
|
||||||
session.sendUpstreamPacket(changeDimensionPacket);
|
session.sendUpstreamPacket(changeDimensionPacket);
|
||||||
session.setDimension(javaDimension);
|
session.setDimension(javaDimension);
|
||||||
session.setDimensionType(session.getDimensions().get(javaDimension));
|
session.getChunkCache().setBedrockDimension(switch (javaDimension) {
|
||||||
ChunkUtils.loadDimension(session);
|
case DimensionUtils.THE_END -> BedrockDimension.THE_END;
|
||||||
|
case DimensionUtils.NETHER -> DimensionUtils.isCustomBedrockNetherId() ? BedrockDimension.THE_END : BedrockDimension.THE_NETHER;
|
||||||
|
default -> BedrockDimension.OVERWORLD;
|
||||||
|
});
|
||||||
player.setPosition(pos);
|
player.setPosition(pos);
|
||||||
session.setSpawned(false);
|
session.setSpawned(false);
|
||||||
session.setLastChunkPosition(null);
|
session.setLastChunkPosition(null);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren