mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-11-07 17:36:07 +00:00
Started to implement inventory handling
This commit is contained in:
parent
76def0d56b
commit
5895a4161f
9 changed files with 148 additions and 1 deletions
|
|
@ -10,7 +10,7 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
/// </summary>
|
||||
enum PacketIncomingType
|
||||
{
|
||||
KeepAlive,
|
||||
KeepAlive,
|
||||
JoinGame,
|
||||
ChatMessage,
|
||||
Respawn,
|
||||
|
|
@ -26,6 +26,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
KickPacket,
|
||||
NetworkCompressionTreshold,
|
||||
ResourcePackSend,
|
||||
OpenWindow,
|
||||
WindowItems,
|
||||
SetSlot,
|
||||
UnknownPacket
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -464,6 +464,41 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
if (protocolversion >= MC18Version && protocolversion < MC19Version)
|
||||
compression_treshold = dataTypes.ReadNextVarInt(packetData);
|
||||
break;
|
||||
case PacketIncomingType.OpenWindow:
|
||||
if (protocolversion < MC1141Version)
|
||||
{
|
||||
byte windowID = dataTypes.ReadNextByte(packetData);
|
||||
string type = dataTypes.ReadNextString(packetData).Replace("minecraft:", "").ToUpper();
|
||||
InventoryType inventoryType = (InventoryType)Enum.Parse(typeof(InventoryType), type);
|
||||
string title = dataTypes.ReadNextString(packetData);
|
||||
byte slots = dataTypes.ReadNextByte(packetData);
|
||||
Inventory inventory = new Inventory(windowID, inventoryType, title, slots);
|
||||
|
||||
|
||||
handler.onInventoryOpen(inventory);
|
||||
}
|
||||
break;
|
||||
case PacketIncomingType.WindowItems:
|
||||
if (protocolversion < MC1141Version)
|
||||
{
|
||||
byte id = dataTypes.ReadNextByte(packetData);
|
||||
short elements = dataTypes.ReadNextShort(packetData);
|
||||
|
||||
for (int i = 0; i < elements; i++)
|
||||
{
|
||||
short itemID = dataTypes.ReadNextShort(packetData);
|
||||
if (itemID == -1) continue;
|
||||
byte itemCount = dataTypes.ReadNextByte(packetData);
|
||||
short itemDamage = dataTypes.ReadNextShort(packetData);
|
||||
Item item = new Item(itemID, itemCount, itemDamage, 0);
|
||||
//TODO: Add to the dictionary for the inventory its in using the id
|
||||
if (packetData.ToArray().Count() > 0)
|
||||
{
|
||||
dataTypes.ReadNextNbt(packetData);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PacketIncomingType.ResourcePackSend:
|
||||
string url = dataTypes.ReadNextString(packetData);
|
||||
string hash = dataTypes.ReadNextString(packetData);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x40: return PacketIncomingType.KickPacket;
|
||||
case 0x46: return PacketIncomingType.NetworkCompressionTreshold;
|
||||
case 0x48: return PacketIncomingType.ResourcePackSend;
|
||||
case 0x2D: return PacketIncomingType.OpenWindow;
|
||||
case 0x30: return PacketIncomingType.WindowItems;
|
||||
case 0x2F: return PacketIncomingType.SetSlot;
|
||||
default: return PacketIncomingType.UnknownPacket;
|
||||
}
|
||||
}
|
||||
|
|
@ -59,6 +62,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x0E: return PacketIncomingType.TabCompleteResult;
|
||||
case 0x18: return PacketIncomingType.PluginMessage;
|
||||
case 0x1A: return PacketIncomingType.KickPacket;
|
||||
case 0x13: return PacketIncomingType.OpenWindow;
|
||||
case 0x14: return PacketIncomingType.WindowItems;
|
||||
case 0x16: return PacketIncomingType.SetSlot;
|
||||
//NetworkCompressionTreshold removed in 1.9
|
||||
case 0x32: return PacketIncomingType.ResourcePackSend;
|
||||
default: return PacketIncomingType.UnknownPacket;
|
||||
|
|
@ -81,7 +87,10 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x0E: return PacketIncomingType.TabCompleteResult;
|
||||
case 0x18: return PacketIncomingType.PluginMessage;
|
||||
case 0x1A: return PacketIncomingType.KickPacket;
|
||||
case 0x13: return PacketIncomingType.OpenWindow;
|
||||
case 0x33: return PacketIncomingType.ResourcePackSend;
|
||||
case 0x14: return PacketIncomingType.WindowItems;
|
||||
case 0x16: return PacketIncomingType.SetSlot;
|
||||
default: return PacketIncomingType.UnknownPacket;
|
||||
}
|
||||
}
|
||||
|
|
@ -102,6 +111,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x0E: return PacketIncomingType.TabCompleteResult;
|
||||
case 0x18: return PacketIncomingType.PluginMessage;
|
||||
case 0x1A: return PacketIncomingType.KickPacket;
|
||||
case 0x13: return PacketIncomingType.OpenWindow;
|
||||
case 0x14: return PacketIncomingType.WindowItems;
|
||||
case 0x16: return PacketIncomingType.SetSlot;
|
||||
case 0x34: return PacketIncomingType.ResourcePackSend;
|
||||
default: return PacketIncomingType.UnknownPacket;
|
||||
}
|
||||
|
|
@ -124,6 +136,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x19: return PacketIncomingType.PluginMessage;
|
||||
case 0x1B: return PacketIncomingType.KickPacket;
|
||||
case 0x37: return PacketIncomingType.ResourcePackSend;
|
||||
case 0x14: return PacketIncomingType.OpenWindow;
|
||||
case 0x15: return PacketIncomingType.WindowItems;
|
||||
case 0x17: return PacketIncomingType.SetSlot;
|
||||
default: return PacketIncomingType.UnknownPacket;
|
||||
}
|
||||
}
|
||||
|
|
@ -145,6 +160,9 @@ namespace MinecraftClient.Protocol.Handlers
|
|||
case 0x18: return PacketIncomingType.PluginMessage;
|
||||
case 0x1A: return PacketIncomingType.KickPacket;
|
||||
case 0x39: return PacketIncomingType.ResourcePackSend;
|
||||
case 0x2E: return PacketIncomingType.OpenWindow;
|
||||
case 0x14: return PacketIncomingType.WindowItems;
|
||||
case 0x16: return PacketIncomingType.SetSlot;
|
||||
default: return PacketIncomingType.UnknownPacket;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue