Fixed inventory crashing on 1.13-1.13.2

This commit is contained in:
Anon 2026-03-24 15:39:50 +01:00
parent aeec731ae5
commit f64757edea

View file

@ -452,7 +452,7 @@ namespace MinecraftClient.Protocol.Handlers
item.Components = strcturedComponentsToAdd;
return item;
case >= Protocol18Handler.MC_1_13_Version:
case >= Protocol18Handler.MC_1_13_2_Version:
{
var itemPresent = ReadNextBool(cache);
@ -469,6 +469,18 @@ namespace MinecraftClient.Protocol.Handlers
nbt = ReadNextNbt(cache);
return new Item(type, itemCount, nbt);
}
case >= Protocol18Handler.MC_1_13_Version:
{
itemId = ReadNextShort(cache);
if (itemId == -1)
return null;
var type = itemPalette.FromId(itemId);
itemCount = ReadNextByte(cache);
nbt = ReadNextNbt(cache);
return new Item(type, itemCount, nbt);
}
default:
{
itemId = ReadNextShort(cache);
@ -1745,7 +1757,7 @@ namespace MinecraftClient.Protocol.Handlers
}
}
}
else if (protocolversion > Protocol18Handler.MC_1_13_Version)
else if (protocolversion >= Protocol18Handler.MC_1_13_2_Version)
{
if (item is null || item.IsEmpty)
slotData.AddRange(GetBool(false));
@ -1757,6 +1769,17 @@ namespace MinecraftClient.Protocol.Handlers
slotData.AddRange(GetNbt(item.NBT));
}
}
else if (protocolversion >= Protocol18Handler.MC_1_13_Version)
{
if (item is null || item.IsEmpty)
slotData.AddRange(GetShort(-1));
else
{
slotData.AddRange(GetShort((short)itemPalette.ToId(item.Type)));
slotData.Add((byte)item.Count);
slotData.AddRange(GetNbt(item.NBT));
}
}
else
{
if (item is null || item.IsEmpty)
@ -1765,7 +1788,8 @@ namespace MinecraftClient.Protocol.Handlers
{
slotData.AddRange(GetShort((short)(itemPalette.ToId(item.Type) >> 16)));
slotData.Add((byte)item.Count);
slotData.Add((byte)item.Data);
// Legacy (<1.13) item slot wire format uses a SHORT for item damage/data.
slotData.AddRange(GetShort((short)item.Data));
slotData.AddRange(GetNbt(item.NBT));
}
}