Fix for EntityEffect packet

This commit is contained in:
BruceChen 2022-09-04 18:12:47 +08:00
parent db17babe58
commit dfc310b3f2

View file

@ -1339,7 +1339,9 @@ namespace MinecraftClient.Protocol.Handlers
{ {
int entityid = dataTypes.ReadNextVarInt(packetData); int entityid = dataTypes.ReadNextVarInt(packetData);
Inventory.Effects effect = Effects.Speed; 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 amplifier = dataTypes.ReadNextByte(packetData);
int duration = dataTypes.ReadNextVarInt(packetData); int duration = dataTypes.ReadNextVarInt(packetData);
@ -1351,6 +1353,7 @@ namespace MinecraftClient.Protocol.Handlers
if (protocolVersion >= MC_1_19_Version) if (protocolVersion >= MC_1_19_Version)
{ {
hasFactorData = dataTypes.ReadNextBool(packetData); hasFactorData = dataTypes.ReadNextBool(packetData);
if (hasFactorData)
factorCodec = dataTypes.ReadNextNbt(packetData); factorCodec = dataTypes.ReadNextNbt(packetData);
} }