using System;
using PSO2SERVER.Models;
using PSO2SERVER.Protocol.Packets;

namespace PSO2SERVER.Protocol.Handlers
{
    [PacketHandlerAttr(0x0F, 0x01)]
    public class ItemPickupRequest : PacketHandler
    {
        public struct ItemPickupRequestPacket
        {
            /// Item drop ID.
            public uint DropId { get; set; }

            /// Unknown field.
            public uint Unk { get; set; }

            // Constructor for convenience
            public ItemPickupRequestPacket(uint dropId, uint unk)
            {
                DropId = dropId;
                Unk = unk;
            }
        }

        public override void HandlePacket(Client context, byte flags, byte[] data, uint position, uint size)
        {
            var info = string.Format("[<--] 接收到的数据 (hex): {0} 字节", data.Length);
            Logger.WriteHex(info, data);

            var reader = new PacketReader(data, position, size);
            var pkt = reader.ReadStruct<ItemPickupRequestPacket>();

            context.SendPacket(new ItemPickupResponsePacket(context._account.AccountId, pkt.DropId, 1, pkt.Unk));
        }
    }
}
