public static void PurifyItem(Purification ps, Client.GameState client)
        {
            Interfaces.IConquerItem Item = null, AddingItem = null;
            if (client.Inventory.TryGetItem(ps.ItemUID, out Item) && client.Inventory.TryGetItem(ps.AddUID, out AddingItem))
            {
                if (ps.ItemUID == ps.AddUID)
                    return;

                var PurifyInformation = Database.ConquerItemInformation.BaseInformations[AddingItem.ID];
                var ItemInformation = Database.ConquerItemInformation.BaseInformations[Item.ID];
                if (PurifyInformation.PurificationLevel > 0)
                {
                    if (ItemInformation.Level >= PurifyInformation.Level)
                    {
                        if (client.Inventory.Contains(1088001, PurifyInformation.PurificationMeteorNeed))
                        {
                            client.Inventory.Remove(1088001, (byte)PurifyInformation.PurificationMeteorNeed);
                            if (Item.Purification.PurificationItemID > 0)
                                Database.ItemAddingTable.RemoveAdding(Item.UID, Item.Purification.PurificationItemID);
                            client.Send(ps);
                            ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            purify.AddedOn = DateTime.Now;
                            purify.Available = true;
                            purify.ItemUID = ps.ItemUID;
                            purify.PurificationLevel = PurifyInformation.PurificationLevel;
                            purify.PurificationDuration = 7 * 24 * 60 * 60;
                            purify.PurificationItemID = AddingItem.ID;
                            Database.ItemAddingTable.AddPurification(purify);
                            Item.Purification = purify;
                            Item.Mode = PhoenixProject.Game.Enums.ItemMode.Update;
                            Item.Send(client);
                            client.Inventory.Remove(AddingItem, PhoenixProject.Game.Enums.ItemUse.Remove);
                            client.LoadItemStats(client.Entity);
                            client.CalculateStatBonus();
                            client.CalculateHPBonus();
                            client.Send(ps);
                        }
                    }
                }
            }
        }
 public static void GetAddingsForItem(Interfaces.IConquerItem item)
 {
     if (item != null)
     {
         MySqlCommand cmd = new MySqlCommand(MySqlCommandType.SELECT);
         cmd.Select("itemadding").Where("UID", item.UID);
         MySqlReader r = new MySqlReader(cmd);
         while (r.Read())
         {
             uint type = r.ReadUInt32("addingtype");
             if (type == 0)
             {
                 ItemAdding.Purification_ purification = new ItemAdding.Purification_();
                 purification.ItemUID = item.UID;
                 purification.Available = true;
                 purification.PurificationItemID = r.ReadUInt32("addingid");
                 purification.PurificationDuration = r.ReadUInt32("duration");
                 purification.PurificationLevel = r.ReadUInt32("addinglevel");
                 purification.AddedOn = DateTime.FromBinary(r.ReadInt64("addedon"));
                 if (purification.PurificationDuration != 0)
                 {
                     TimeSpan span1 = new TimeSpan(purification.AddedOn.AddSeconds(purification.PurificationDuration).Ticks);
                     TimeSpan span2 = new TimeSpan(DateTime.Now.Ticks);
                     int secondsleft = (int)(span1.TotalSeconds - span2.TotalSeconds);
                     if (secondsleft <= 0)
                     {
                         purification.Available = false;
                         RemoveAdding(item.UID, purification.PurificationItemID);
                         continue;
                     }
                 }
                 item.Purification = purification;
             }
             else
             {
                 ItemAdding.Refinery_ extraeffect = new ItemAdding.Refinery_();
                 extraeffect.ItemUID = item.UID;
                 extraeffect.Available = true;
                 extraeffect.EffectID = item.RefineItem;
                 extraeffect.EffectLevel = r.ReadUInt32("addinglevel");
                 extraeffect.EffectPercent = r.ReadUInt32("addingpercent");
                 extraeffect.EffectDuration = r.ReadUInt32("duration");
                 extraeffect.AddedOn = DateTime.FromBinary(r.ReadInt64("addedon"));
                 item.ExtraEffect = extraeffect;
                 if (extraeffect.EffectDuration != 0)
                 {
                     TimeSpan span1 = new TimeSpan(extraeffect.AddedOn.AddSeconds(extraeffect.EffectDuration).Ticks);
                     TimeSpan span2 = new TimeSpan(DateTime.Now.Ticks);
                     int secondsleft = (int)(span1.TotalSeconds - span2.TotalSeconds);
                     if (secondsleft <= 0)
                     {
                         extraeffect.Available = false;
                         RemoveAdding(item.UID, extraeffect.EffectID);
                         continue;
                     }
                 }
                 item.ExtraEffect = extraeffect;
             }
         }
         r.Close();
         r.Dispose();
     }
 }