Exemple #1
0
        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}");
            }
        }
Exemple #2
0
        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}");
                }
            }
        }