From 26bc6f16c00e556ae88572fbdb83e6ecf0e1dddf Mon Sep 17 00:00:00 2001 From: BruceChen Date: Thu, 15 Sep 2022 12:54:43 +0800 Subject: [PATCH] Try fix 1.19+ dimension processing --- MinecraftClient/Protocol/Handlers/Protocol18.cs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 93c40e90..184adb0f 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -608,11 +608,12 @@ namespace MinecraftClient.Protocol.Handlers } break; case PacketTypesIn.Respawn: + string? dimensionTypeNameRespawn = null; Dictionary? dimensionTypeRespawn = null; if (protocolVersion >= MC_1_16_Version) { if (protocolVersion >= MC_1_19_Version) - dataTypes.ReadNextString(packetData); // Dimension Type: Identifier + dimensionTypeNameRespawn = dataTypes.ReadNextString(packetData); // Dimension Type: Identifier else if (protocolVersion >= MC_1_16_2_Version) dimensionTypeRespawn = dataTypes.ReadNextNbt(packetData); // Dimension Type: NBT Tag Compound else @@ -629,9 +630,15 @@ namespace MinecraftClient.Protocol.Handlers string dimensionName = dataTypes.ReadNextString(packetData); // Dimension Name (World Name) - 1.16 and above if (handler.GetTerrainEnabled()) { - if (protocolVersion >= MC_1_16_2_Version && protocolVersion < MC_1_19_Version) + if (protocolVersion >= MC_1_16_2_Version && protocolVersion <= MC_1_18_2_Version) + { World.StoreOneDimension(dimensionName, dimensionTypeRespawn!); - World.SetDimension(dimensionName); + World.SetDimension(dimensionName); + } + else if (protocolVersion >= MC_1_19_Version) + { + World.SetDimension(dimensionTypeNameRespawn!); + } } }