void c_ClientPickItemInfo(object sender, ClientPickItemEventArgs e)
        {
            Client       c = (Client)sender;
            PickItemInfo p = e.Info;

            //MapItem m = mapEngine.GetMapItemById(p.MapItemID);
            // NEED BETTER LOAD FOR LIKE ALL ITEM DATA, NOT JUST MAPITEM STUFF KPLXTHX

            //Equipment item = (Equipment)channelManager.GetItemByItemID(p.ItemID);
            BaseItem item = null;

            Client[] nearbyClients = GetNearByClients(c);

            try
            {
                item = mapEngine.PickupItem(p.MapItemID, c.MyCharacter);
            }
            catch (BagIsFullException)
            {
                byte[] bufferBagIsFull = PacketManager.SendBagIsFull();
                c.Send(bufferBagIsFull);
                //send bag is full
            }

            //.MyCharacter.Bags[0].AddItem(item);
            if (item == null)
            {
                //send item not exist
                return;
            }

            byte[] SendPickUp = PacketManager.SendAddItem(item);
            c.Send(SendPickUp);

            byte[] SendPickUpText = PacketManager.SendPickUpText(item.ReferenceID, item.Amount);
            c.Send(SendPickUpText);

            byte[] SendRemoveMapItem = PacketManager.SendRemoveMapItem(p.MapItemID);
            SendSpecific(nearbyClients, SendRemoveMapItem);
        }
        void c_ClientPickItemInfo(object sender, ClientPickItemEventArgs e)
        {
            Client c = (Client)sender;
            PickItemInfo p = e.Info;

            //MapItem m = mapEngine.GetMapItemById(p.MapItemID);
            // NEED BETTER LOAD FOR LIKE ALL ITEM DATA, NOT JUST MAPITEM STUFF KPLXTHX

            //Equipment item = (Equipment)channelManager.GetItemByItemID(p.ItemID);
            BaseItem item = null;
            Client[] nearbyClients = GetNearByClients(c);

            try
            {
                item = mapEngine.PickupItem(p.MapItemID, c.MyCharacter);
            }
            catch (BagIsFullException)
            {
                byte[] bufferBagIsFull = PacketManager.SendBagIsFull();
                c.Send(bufferBagIsFull);
                //send bag is full
            }

            //.MyCharacter.Bags[0].AddItem(item);
            if (item == null)
            {
                //send item not exist
                return;
            }

            byte[] SendPickUp = PacketManager.SendAddItem(item);
            c.Send(SendPickUp);

            byte[] SendPickUpText = PacketManager.SendPickUpText(item.ReferenceID, item.Amount);
            c.Send(SendPickUpText);

            byte[] SendRemoveMapItem = PacketManager.SendRemoveMapItem(p.MapItemID);
            SendSpecific(nearbyClients, SendRemoveMapItem);
        }
        void c_ClientPickItemInfo(object sender, ClientPickItemEventArgs e)
        {
            Client c = (Client)sender;
            PickItemInfo p = e.Info;

            //Equipment item = (Equipment)channelManager.GetItemByItemID(p.ItemID);
            BaseItem item = null;
            MapEngine mapEngine = GetMapEngine(c.MyCharacter.MapId);
            Client[] clients = GetClientsForChars(mapEngine.GetCharactersInRange(c.MyCharacter.Position, 150).ToArray());
            try
            {
                item = mapEngine.PickupItem(p.MapItemID, c, p.Amount);
            }
            catch (BagIsFullException)
            {
                byte[] bufferBagIsFull = PacketManager.SendBagIsFull();
                c.Send(bufferBagIsFull);
                //send bag is full
            }

            //.MyCharacter.Bags[0].AddItem(item);
            if (item == null)
            {
                //send item not exist
                return;
            }

            if (item is Jeon)
            {
                c.MyCharacter.Money += item.Amount;
                characterManager.UpdateCharacter(c.MyCharacter);

                byte[] SendMoneyLeft = PacketManager.SendMoneyLeft(c.MyCharacter.Money);
                c.Send(SendMoneyLeft);
            }
            else
            {
                // will crash if this is send when you pick up money so better do it like this..
                byte[] SendPickUp = PacketManager.SendAddItem(item);
                c.Send(SendPickUp);
            }

            byte[] SendPickUpText = PacketManager.SendPickUpText(item.ReferenceID, item.Amount, 1);
            c.Send(SendPickUpText);

            byte[] SendRemoveMapItem = PacketManager.SendRemoveMapItem(p.MapItemID);
            SendToClients(SendRemoveMapItem, clients);
        }