コード例 #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}");
            }
        }
コード例 #2
0
        public void SendSetSlot(int slot)
        {
            McpeInventorySlot sendSlot = McpeInventorySlot.CreateObject();

            sendSlot.inventoryId = 0;
            sendSlot.slot        = (uint)slot;
            sendSlot.item        = Slots[slot];
            Player.SendPackage(sendSlot);
        }
コード例 #3
0
        public virtual void SendSetSlot(int slot)
        {
            var sendSlot = McpeInventorySlot.CreateObject();

            sendSlot.inventoryId = 0;
            sendSlot.slot        = (uint)slot;
            sendSlot.uniqueid    = Slots[slot].UniqueId;
            sendSlot.item        = Slots[slot];
            Player.SendPacket(sendSlot);
        }
コード例 #4
0
        public void HandleSetSlot(McpeInventorySlot packet)
        {
            var wrapper = new ItemWrapper(packet.item, packet.item.ToAlexItem());

            if (packet.inventoryId == 0x00)
            {
                Set((int)packet.slot, wrapper);
                //_slots[packet.slot] = wrapper;
                return;
            }
        }
コード例 #5
0
        private void HandleInventorySlot(McpeInventorySlot packet)
        {
            lock (_lastItem)
            {
                var item = packet.item;

                if (item != null && item is not ItemAir && item.Count > 0)
                {
                    _lastItem = item;
                    _resetEventInventorySlot.Set();
                }
            }
        }
コード例 #6
0
        public void SendSetSlot(int slot)
        {
            if (slot < HotbarSize && (ItemHotbar[slot] == -1 || ItemHotbar[slot] == slot))
            {
                ItemHotbar[slot] = slot /* + HotbarSize*/;
                Player.SendPlayerInventory();

                McpeMobEquipment order = McpeMobEquipment.CreateObject();
                order.runtimeEntityId = EntityManager.EntityIdSelf;
                order.item            = GetItemInHand();
                order.selectedSlot    = (byte)slot;               // Selected hotbar slot
                Player.SendPackage(order);
            }
            else
            {
                McpeInventorySlot sendSlot = McpeInventorySlot.CreateObject();
                sendSlot.inventoryId = 0;
                sendSlot.slot        = slot;
                sendSlot.item        = GetItemInHand();
                Player.SendPackage(sendSlot);
            }
        }
コード例 #7
0
        public void SendSetSlot(int slot)
        {
            if (slot < 0 || slot > Slots.Length - 1)
            {
                return;
            }

            McpeInventorySlot ssendSlot = McpeInventorySlot.CreateObject();

            ssendSlot.inventoryId = 0;
            ssendSlot.slot        = slot;
            ssendSlot.item        = Slots[slot];

            Player.SendPackage(ssendSlot);

            return;

            if (slot < HotbarSize /* && (ItemHotbar[slot] == -1 || ItemHotbar[slot] == slot)*/)
            {
                //	ItemHotbar[slot] = slot;
                //Player.SendPlayerInventory();

                McpeMobEquipment order = McpeMobEquipment.CreateObject();
                order.runtimeEntityId = EntityManager.EntityIdSelf;
                order.item            = Slots[slot];
                order.slot            = (byte)slot;
                order.selectedSlot    = (byte)(slot);               // Selected hotbar slot
                Player.SendPackage(order);
            }
            else
            {
                McpeInventorySlot sendSlot = McpeInventorySlot.CreateObject();
                sendSlot.inventoryId = 0;
                sendSlot.slot        = slot;
                sendSlot.item        = Slots[slot];
                Player.SendPackage(sendSlot);
            }
        }
コード例 #8
0
 public void HandleMcpeInventorySlot(McpeInventorySlot message)
 {
 }
コード例 #9
0
 public abstract void HandleMcpeInventorySlot(McpeInventorySlot message);
コード例 #10
0
ファイル: BedrockTraceHandler.cs プロジェクト: kroer/MiNET
 public override void HandleMcpeInventorySlot(McpeInventorySlot message)
 {
 }
コード例 #11
0
 public override void HandleMcpeInventorySlot(McpeInventorySlot message)
 {
     Log.Debug($"Inventory slot: {message.item}");
 }