From dfc310b3f2dec5b80893464f2d0ed8d92af4ccfe Mon Sep 17 00:00:00 2001 From: BruceChen Date: Sun, 4 Sep 2022 18:12:47 +0800 Subject: [PATCH] Fix for EntityEffect packet --- MinecraftClient/Protocol/Handlers/Protocol18.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 8751ca5c..81b6c163 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -1339,7 +1339,9 @@ namespace MinecraftClient.Protocol.Handlers { int entityid = dataTypes.ReadNextVarInt(packetData); Inventory.Effects effect = Effects.Speed; - if (Enum.TryParse(dataTypes.ReadNextByte(packetData).ToString(), out effect)) + int effectId = protocolVersion >= MC_1_18_2_Version ? + dataTypes.ReadNextVarInt(packetData) : dataTypes.ReadNextByte(packetData); + if (Enum.TryParse(effectId.ToString(), out effect)) { int amplifier = dataTypes.ReadNextByte(packetData); int duration = dataTypes.ReadNextVarInt(packetData); @@ -1351,7 +1353,8 @@ namespace MinecraftClient.Protocol.Handlers if (protocolVersion >= MC_1_19_Version) { hasFactorData = dataTypes.ReadNextBool(packetData); - factorCodec = dataTypes.ReadNextNbt(packetData); + if (hasFactorData) + factorCodec = dataTypes.ReadNextNbt(packetData); } handler.OnEntityEffect(entityid, effect, amplifier, duration, flags, hasFactorData, factorCodec);