public override void HandleMcpeInventorySlot(McpeInventorySlot message) { Inventory inventory = null; if (message.inventoryId == 0x00) { if (BaseClient.WorldReceiver?.GetPlayerEntity() is Player player) { inventory = player.Inventory; if (!inventory.IsPeInventory) { player.Inventory.IsPeInventory = true; } } } if (inventory == null) { return; } var index = (int)message.slot; if (ItemFactory.TryGetItem(message.item.Id, message.item.Metadata, out Item item)) { item.Count = message.item.Count; inventory[index] = item; // Log.Info($"Set inventory slot: {message.slot} Id: {message.item.Id}:{message.item.Metadata} x {message.item.Count} Name: {item.DisplayName} IsPeInv: {inventory.IsPeInventory}"); } else { Log.Warn($"Failed to set slot: {message.slot} Id: {message.item.Id}:{message.item.Metadata}"); } }
public override void HandleMcpeInventoryContent(McpeInventoryContent message) { Inventory inventory = null; if (message.inventoryId == 0x00) { if (BaseClient.WorldReceiver?.GetPlayerEntity() is Player player) { inventory = player.Inventory; } } if (inventory == null) { return; } for (var index = 0; index < message.input.Count; index++) { var slot = message.input[index]; var usedIndex = index; if (ItemFactory.TryGetItem(slot.Id, slot.Metadata, out Item item)) { item.Count = slot.Count; inventory[usedIndex] = item; } else { Log.Warn($"Failed to set slot: {index} Id: {slot.Id}:{slot.Metadata}"); } } }