public static ISkill LearnableSpell(ushort spellid, byte level)
 {
     ISkill spell = new Spell(true);
     spell.ID = spellid;
     spell.Level = level;
     return spell;
 }
        static bool CheckCommand(Message message, Client.GameState client)
        {
            try
            {
                if (message.__Message.StartsWith("@"))
                {
                    string Message = message.__Message.Substring(1).ToLower();
                    string Mess = message.__Message.Substring(1);
                    string[] Data = Message.Split(' ');
                    #region GMs PMs
                    if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.ProjectManager || client.Account.State == PhoenixProject.Database.AccountTable.AccountState.Coder)
                    {
                        switch (Data[0])
                        {

                            case "addcps":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            if (!Game.PrizeNPC.PrizeNpcInformations.ContainsKey(pClient.Entity.UID))
                                            {
                                                PhoenixProject.Game.PrizeNPC.PrizeNpcInfo info = new PhoenixProject.Game.PrizeNPC.PrizeNpcInfo();
                                                info.Owner = pClient.Entity.UID;
                                                info.type = 1;
                                                info.amount = uint.Parse(Data[2]);
                                                info.itemid = 0;
                                                PhoenixProject.Game.PrizeNPC.PrizeNpcInformations.Add(info.Owner, info);
                                                PhoenixProject.Database.MySqlCommand cmd = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.INSERT);
                                                cmd.Insert("prizenpc").Insert("Owner", client.Entity.UID).Insert("type", info.type).Insert("Amount", info.amount).Insert("itemid", info.itemid);
                                                cmd.Execute();
                                                Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Congratulation you have got an Donation Prize " + info.amount + " Cps go to PrizeNpc to Claim It?");
                                                npc.OptionID = 255;
                                                pClient.Send(npc.ToArray());

                                                Network.GamePackets.NpcReply npc2 = new Network.GamePackets.NpcReply(6, "" + pClient.Entity.Name + " has Recived " + info.amount + " Cps");
                                                npc2.OptionID = 255;
                                                client.Send(npc2.ToArray());

                                                Console.WriteLine("" + pClient.Entity.Name + " has got Donation Prize Cps " + info.amount + "");
                                            }
                                            else
                                            {
                                                Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry the player already have prize not claimed yet");
                                                npc.OptionID = 255;
                                                client.Send(npc.ToArray());
                                            }
                                        }
                                    }
                                    break;
                                }
                            case "who":
                                {
                                    var varr = ServerBase.Kernel.GamePool.Values.GetEnumerator();
                                    varr.MoveNext();
                                    int COunt = ServerBase.Kernel.GamePool.Count;
                                    for (uint x = 0;
                                        x < COunt;
                                        x++)
                                    {
                                        if (x >= COunt) break;

                                        Client.GameState pClient = (varr.Current as Client.GameState);

                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            client.Send(new Message("[Whois " + pClient.Entity.Name + "]", System.Drawing.Color.Gold, GamePackets.Message.FirstRightCorner));
                                            client.Send(new Message("Username: "******"Password: "******"IP: " + pClient.Account.IP, System.Drawing.Color.Gold, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("CPs: " + pClient.Entity.ConquerPoints, System.Drawing.Color.Gold, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Money: " + pClient.Entity.Money, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Class: " + pClient.Entity.Class, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("UID: " + pClient.Entity.UID, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Level: " + pClient.Entity.Level, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Strength: " + pClient.Entity.Strength, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Agility: " + pClient.Entity.Agility, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Vitality: " + pClient.Entity.Vitality, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Spirit: " + pClient.Entity.Spirit, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Atributes: " + pClient.Entity.Atributes, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Hitpoints: " + pClient.Entity.Hitpoints, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("PKPoints: " + pClient.Entity.PKPoints, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("VIPLevel: " + pClient.Entity.VIPLevel, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                            client.Send(new Message("Map: [" + pClient.Entity.MapID + "] " + pClient.Entity.X + "," + pClient.Entity.Y, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner));
                                        }

                                        varr.MoveNext();
                                    }
                                    break;
                                }
                            case "additem":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            if (!Game.PrizeNPC.PrizeNpcInformations.ContainsKey(pClient.Entity.UID))
                                            {
                                                PhoenixProject.Game.PrizeNPC.PrizeNpcInfo info = new PhoenixProject.Game.PrizeNPC.PrizeNpcInfo();
                                                info.Owner = pClient.Entity.UID;
                                                info.type = 2;
                                                info.amount = 0;
                                                info.itemid = uint.Parse(Data[2]);
                                                PhoenixProject.Game.PrizeNPC.PrizeNpcInformations.Add(info.Owner, info);

                                                PhoenixProject.Database.MySqlCommand cmd = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.INSERT);
                                                cmd.Insert("prizenpc").Insert("Owner", client.Entity.UID).Insert("type", info.type).Insert("Amount", info.amount).Insert("itemid", info.itemid);
                                                cmd.Execute();
                                                Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Congratulation you have got an Donation item go to PrizeNpc to Claim It?");
                                                npc.OptionID = 255;
                                                pClient.Send(npc.ToArray());

                                                Network.GamePackets.NpcReply npc2 = new Network.GamePackets.NpcReply(6, "" + pClient.Entity.Name + " has Recived item id: " + info.itemid + "");
                                                npc2.OptionID = 255;
                                                client.Send(npc2.ToArray());
                                                Console.WriteLine("" + pClient.Entity.Name + " has got Donation Prize item " + info.itemid + "");
                                            }
                                            else
                                            {
                                                Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry the player already have prize not claimed yet");
                                                npc.OptionID = 255;
                                                client.Send(npc.ToArray());
                                            }
                                        }
                                    }
                                    break;
                                }
                            case "summon":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);
                                        }
                                    }
                                    break;
                                }
                            case "scroll":
                                {
                                    if (client.Entity.MapID == 700)
                                        break;
                                    switch (Data[1].ToLower())
                                    {
                                        case "tc": client.Entity.Teleport(1002, 430, 380); break;
                                        case "pc": client.Entity.Teleport(1011, 195, 260); break;
                                        case "ac":
                                        case "am": client.Entity.Teleport(1020, 566, 563); break;
                                        case "dc": client.Entity.Teleport(1000, 500, 645); break;
                                        case "bi": client.Entity.Teleport(1015, 723, 573); break;
                                        case "pka": client.Entity.Teleport(1005, 050, 050); break;
                                        case "ma": client.Entity.Teleport(1036, 211, 196); break;
                                        case "ja": client.Entity.Teleport(6000, 100, 100); break;
                                    }
                                    break;
                                }

                            case "test":
                                {
                                    byte IDs = byte.Parse(Data[1]);
                                    Data data = new Data(true);
                                    data.UID = client.Entity.UID;
                                    data.dwParam = 2;
                                    data.ID = IDs;//157
                                    data.wParam1 = client.Entity.X;
                                    data.wParam2 = client.Entity.Y;
                                    client.Send(data);
                                    break;
                                }
                            case "jar":
                                {
                                    ConquerItem item2 = new ConquerItem(true);
                                    item2.ID = 750000;
                                    //item2.Color =  PhoenixProject.Game.Enums.Color.Blue;
                                    item2.Durability = 0;
                                    item2.MaximDurability = 2;
                                    client.Inventory.Add(item2, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd);
                                    break;
                                }
                            case "id":
                                {

                                    byte[] data = new byte[24 + 8];
                                    Writer.WriteUInt32(24, 0, data);
                                    Writer.WriteUInt32(1010, 2, data);
                                    Writer.WriteUInt32(client.Entity.UID, 4, data);
                                    Writer.WriteUInt32(1, 7, data);
                                    Writer.WriteUInt32(client.Entity.UID, 8, data);
                                    Writer.WriteUInt32(client.Entity.UID, 12, data);
                                    Writer.WriteUInt32(client.Entity.UID, 16, data);
                                    Writer.WriteUInt32(1, 19, data);
                                    Writer.WriteUInt32(7, 20, data);
                                    Writer.WriteUInt32(121, 22, data);

                                    // Writer.WriteUInt32(9828, 12, data);
                                    client.Send(data);
                                    // client.Entity.CountryFlag = uint.Parse(Data[1]);
                                    break;
                                }
                            case "itemeffect":
                                {
                                    Kernel.boundID = int.Parse(Data[1]);
                                    Kernel.boundIDEnd = int.Parse(Data[2]);
                                    break;
                                }
                            case "kiko":
                                {
                                    string[] Strings = new string[2];

                                    Strings[0] = (Data[1]);
                                    Strings[1] = "1";
                                    _String SoundPacket = new _String(true);
                                    SoundPacket.UID = client.Entity.UID;
                                    SoundPacket.Type = 20;
                                    SoundPacket.TextsCount = 2;
                                    SoundPacket.Texts.Add(Strings[0]);
                                    SoundPacket.Texts.Add(Strings[1]);
                                    client.Send(SoundPacket);
                                    break;
                                    //client.Entity.ActualMyTypeFlower = 30010102;
                                    // break;
                                }
                            case "ss":
                                {

                                    byte[] data = new byte[80 + 8];
                                    Writer.WriteUInt32(80, 0, data);
                                    Writer.WriteUInt32(1151, 2, data);
                                    Writer.WriteUInt32(2, 4, data);
                                    Writer.WriteUInt32(1, 8, data);
                                    Writer.WriteUInt32(1, 16, data);
                                    Writer.WriteUInt32(227, 32, data);
                                    Writer.WriteUInt32(client.Entity.UID, 40, data);
                                    Writer.WriteUInt32(client.Entity.UID, 44, data);
                                    Writer.WriteString(client.Entity.Name, 48, data);
                                    Writer.WriteString(client.Entity.Name, 64, data);
                                    client.Send(data);
                                    byte[] data2 = new byte[80 + 8];
                                    Writer.WriteUInt32(80, 0, data2);
                                    Writer.WriteUInt32(1151, 2, data2);
                                    Writer.WriteUInt32(2, 4, data2);
                                    Writer.WriteUInt32(2, 8, data2);
                                    Writer.WriteUInt32(1, 16, data2);
                                    Writer.WriteUInt32(282, 32, data2);
                                    Writer.WriteUInt32(client.Entity.UID, 40, data2);
                                    Writer.WriteUInt32(client.Entity.UID, 44, data2);
                                    Writer.WriteString(client.Entity.Name, 48, data2);
                                    Writer.WriteString(client.Entity.Name, 64, data2);
                                    client.Send(data2);
                                    // client.Send(new Message("Test Channel Mesaage!", System.Drawing.Color.Red, uint.Parse(Data[1])));
                                    //client.Entity.ClanSharedBp = 4;
                                    // Game.KimoCarnaval.Load();
                                    /*NpcInitial initial = new NpcInitial
                                    {
                                        Identifier = 1,
                                        Lookface = (num != 0x2008) ? ((ushort)0x1a) : ((ushort)3),
                                        Mode = PhoenixProject.Network.GamePackets.NpcInitial.NpcModes.Place,
                                        Furniture = num
                                    };
                                    client.Send((byte[])initial);*/
                                    break;
                                }
                            case "600":
                                {
                                    Game.Map Map = ServerBase.Kernel.Maps[client.Entity.MapID];
                                    Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);

                                    floorItem.MapObjType = Game.MapObjectType.Item;
                                    floorItem.ItemID = uint.Parse(Data[1]);
                                    floorItem.MapID = client.Entity.MapID;

                                    floorItem.X = ushort.Parse(Data[2]);
                                    floorItem.Y = ushort.Parse(Data[3]);
                                    floorItem.Type = 10;
                                    floorItem.OnFloor = Time32.Now.AddHours(24);
                                    floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                                    while (Map.Npcs.ContainsKey(floorItem.UID))
                                        floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
                                    Map.AddFloorItem(floorItem);
                                    client.SendScreenSpawn(floorItem, true);
                                    client.Effect = true;
                                    /* _String str = new _String(true);
                                     str.UID = client.Entity.UID;
                                     str.TextsCount = 2;
                                     str.Type = _String.Sound;
                                     str.Texts.Add("sound");
                                     str.Texts.Add("gethp.wav");
                                     client.Send(str);*/

                                    // client.Entity.TitlePacket.dwParam2 = (byte)PhoenixProject.Game.Tournaments.top_typ.GoldenRacer;
                                    break;
                                }
                            case "quiz":
                                {
                                    //PhoenixProject.Game.ConquerStructures.QuizShow.Start();
                                    // client.Send(GamePackets.QuizInfo.tempQuestionBuffer());
                                    //Game.ConquerStructures.QuizShow.Start();
                                    Game.ConquerStructures.QuizShow.Start2();
                                    Program.QuizStamp = Time32.Now;
                                    break;
                                }
                            case "me":
                                {
                                    /* MessageTick m = new MessageTick();
                                     m.Identifier = client.Entity.UID;
                                     m.Response = client.Entity.UID;
                                     client.Send(m);*/

                                    MapStatus mbox = new MapStatus();
                                    mbox.BaseID = 1002;
                                    client.Send(mbox);
                                    break;
                                }
                            case "quiz2":
                                {
                                    //PhoenixProject.Game.ConquerStructures.QuizShow.Start();
                                    // client.Send(GamePackets.QuizInfo.tempQuestionBuffer());
                                    //Game.ConquerStructures.QuizShow.Start();
                                    Game.ConquerStructures.QuizShow.Stop();
                                    break;
                                }
                            case "q":
                                {
                                    //PhoenixProject.Game.ConquerStructures.QuizShow.Start();
                                    // client.Send(GamePackets.QuizInfo.tempQuestionBuffer());
                                    //Game.ConquerStructures.QuizShow.Start();
                                    client.Send(GamePackets.QuizInfo.tempQuestionBuffer());
                                    break;
                                }
                            case "team":
                                {
                                    {
                                        Game.KimoSkillWar.Started = true;
                                        Game.KimoSkillWar.SignUP = true;

                                    }
                                    break;
                                }
                            case "geartest":
                                {
                                    //181315 515black
                                    uint UID = 92000;
                                    PhoenixProject.Interfaces.IConquerItem newItem = new PhoenixProject.Network.GamePackets.ConquerItem(true);
                                    newItem.ID = 181825;
                                    newItem.UID = UID;
                                    newItem.Durability = 1000;
                                    newItem.MaximDurability = 1000;
                                    newItem.Position = 9;
                                    //client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
                                    client.Equipment.Remove(9);
                                    if (client.Equipment.Objects[8] != null)
                                        client.Equipment.Objects[8] = null;
                                    client.Equipment.Add(newItem);
                                    newItem.Mode = PhoenixProject.Game.Enums.ItemMode.Update;
                                    newItem.Send(client);
                                    ClientEquip equips = new ClientEquip();
                                    equips.DoEquips(client);
                                    client.Send(equips);
                                    client.Equipment.UpdateEntityPacket();
                                    break;

                                }
                            case "quarantine":
                                {
                                    //542363
                                    PhoenixProject.Game.ConquerStructures.Quarantine.Started = true;
                                    break;
                                }
                            case "test2":
                                {
                                    client.Entity.RemoveFlag(ulong.Parse(Data[1]));
                                    break;
                                }
                            case "arrest":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            pClient.Entity.Teleport(6004, 30, 74);
                                        }
                                    }
                                    break;
                                }

                            case "pkp":
                                {
                                    client.Entity.PKPoints = ushort.Parse(Data[1]);

                                    break;
                                }
                            case "dropevent":
                                {

                                    Interfaces.IConquerItem Item = null;

                                    #region Get Item
                                    string ItemName = Data[1];
                                    bool SpecialItem = false;
                                    uint SpecialID = 0;
                                    if (ItemName.Contains("cp") || ItemName.Contains("met") || ItemName.Contains("db") || ItemName.Contains("stone") || ItemName.Contains("soul"))
                                    {
                                        if (ItemName.Contains("cp"))
                                            SpecialID = 729911;
                                        else if (ItemName.Contains("db"))
                                            SpecialID = 1088000;
                                        else if (ItemName.Contains("met"))
                                            SpecialID = 1088001;
                                        else if (ItemName.Contains("stone"))
                                            SpecialID = 730008;
                                        else if (ItemName.Contains("Soul"))
                                            SpecialID = 800110;
                                        SpecialItem = true; goto PrepareDrop;
                                    }
                                    if (ItemName.ToLower() == "exp")
                                    {
                                        for (int c = 0; c < client.Screen.Objects.Count; c++)
                                        {
                                            if (c >= client.Screen.Objects.Count)
                                                break;
                                            Interfaces.IMapObject ClientObj = client.Screen.Objects[c];
                                            if (ClientObj != null)
                                            {
                                                if (ClientObj is Game.Entity)
                                                {
                                                    if (ClientObj.MapObjType == PhoenixProject.Game.MapObjectType.Player)
                                                    {
                                                        ClientObj.Owner.IncreaseExperience(ClientObj.Owner.ExpBall, false);
                                                    }
                                                }
                                            }
                                        }
                                        break;
                                    }
                                    Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3;
                                    if (Data.Length > 2)
                                    {
                                        switch (Data[3].ToLower())
                                        {
                                            case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
                                            case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
                                            case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
                                            case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
                                            case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
                                            case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
                                            case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
                                            case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
                                            case "super": Quality = Game.Enums.ItemQuality.Super; break;
                                            case "other": Quality = Game.Enums.ItemQuality.Other; break;
                                            default:
                                                {
                                                    Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[4]);
                                                    break;
                                                }
                                        }
                                    }
                                    Database.ConquerItemBaseInformation CIBI = null;
                                    foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
                                    {
                                        if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
                                        {
                                            CIBI = infos;
                                        }
                                        else
                                        {
                                            if (infos.Name.ToLower() == ItemName.ToLower())
                                                CIBI = infos;
                                        }
                                    }
                                    if (CIBI == null)
                                        break;
                                    Item = new GamePackets.ConquerItem(true);
                                    Item.ID = CIBI.ID;
                                    Item.Durability = CIBI.Durability;
                                    Item.MaximDurability = CIBI.Durability;
                                    if (Data.Length > 3)
                                        Item.Plus = byte.Parse(Data[4]);
                                    #endregion

                                PrepareDrop:
                                    {
                                        if (Item != null || SpecialItem)
                                        {
                                            //dropevent Name Quality
                                            for (int i = 0; i < int.Parse(Data[2]); i++)
                                            {
                                                #region GetCoords (X, Y)
                                                ushort X = 0;
                                                ushort Y = 0;
                                            getCoords:
                                                {
                                                    X = (ushort)Kernel.Random.Next(client.Entity.X - 20, client.Entity.X + 20);
                                                    Y = (ushort)Kernel.Random.Next(client.Entity.Y - 20, client.Entity.Y + 20);
                                                }
                                                while (!client.Map.SelectCoordonates(ref X, ref Y))
                                                    goto getCoords;
                                                #endregion
                                                #region Drop Floor Item
                                                FloorItem floorItem = new FloorItem(true);
                                                if (SpecialItem)
                                                {
                                                    if (SpecialID == 729911)
                                                    {
                                                        floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints;
                                                        floorItem.Value = 20;
                                                    }
                                                    floorItem.ItemID = SpecialID;
                                                    floorItem.Item = new ConquerItem(true);
                                                    floorItem.Item.ID = SpecialID;
                                                    floorItem.Item.UID = FloorItem.FloorUID.Next;
                                                    floorItem.UID = floorItem.Item.UID;
                                                    floorItem.Item.MobDropped = true;
                                                    while (client.Map.Npcs.ContainsKey(floorItem.Item.UID))
                                                    {
                                                        floorItem.Item.UID = FloorItem.FloorUID.Next;
                                                        floorItem.UID = FloorItem.FloorUID.Next;
                                                    }

                                                }
                                                else
                                                {
                                                    floorItem.Item = new ConquerItem(true);
                                                    floorItem.Item.Color = Item.Color;
                                                    floorItem.Item.Durability = Item.Durability;
                                                    floorItem.Item.ID = Item.ID;
                                                    floorItem.Item.Mode = Game.Enums.ItemMode.Default;
                                                    floorItem.Item.UID = FloorItem.FloorUID.Next;
                                                    floorItem.UID = floorItem.Item.UID;
                                                    floorItem.Item.MobDropped = true;
                                                    floorItem.ItemColor = Item.Color;
                                                    floorItem.ItemID = Item.ID;
                                                    while (client.Map.Npcs.ContainsKey(floorItem.Item.UID))
                                                    {
                                                        floorItem.Item.UID = FloorItem.FloorUID.Next;
                                                        floorItem.UID = FloorItem.FloorUID.Next;
                                                    }
                                                }

                                                floorItem.MapID = client.Map.ID;
                                                floorItem.MapObjType = Game.MapObjectType.Item;
                                                floorItem.X = X;
                                                floorItem.Y = Y;
                                                floorItem.Type = FloorItem.Drop;
                                                floorItem.OnFloor = Time32.Now;
                                                client.SendScreenSpawn(floorItem, true);
                                                client.Map.AddFloorItem(floorItem);
                                            }
                                        }
                                                #endregion
                                    }
                                    break;
                                }
                            case "testtitle":
                                {
                                    TitlePacket title = new TitlePacket(byte.Parse(Data[1]) == 1);
                                    title.UID = client.Entity.UID;
                                    title.Title = byte.Parse(Data[2]);
                                    title.Type = byte.Parse(Data[3]);
                                    title.dwParam = byte.Parse(Data[4]);
                                    title.dwParam2 = byte.Parse(Data[5]);
                                    client.Send(title);
                                    break;
                                }
                            case "resetvote":
                                {
                                    Kernel.VotePoolUid.Clear();
                                    Kernel.VotePool.Clear();
                                    Database.EntityTable.DeletVotes();
                                    break;
                                }
                            case "invite":
                                {
                                    Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Weekly has Started! You Wana Join?");
                                    npc.OptionID = 247;
                                    //npc.times = 10;
                                    client.Send(npc.ToArray());
                                    client.Entity.InviteSendStamp = Time32.Now;
                                    client.Entity.invite = true;
                                    break;
                                }
                            case "bo7sen":
                                {

                                    PhoenixProject.Network.GamePackets.Data Datas = new PhoenixProject.Network.GamePackets.Data(true);
                                    Datas.UID = client.Entity.UID;
                                    Datas.ID = 126;
                                    Datas.dwParam = uint.Parse(Data[1]);
                                    Datas.wParam1 = client.Entity.X;
                                    Datas.wParam2 = client.Entity.Y;
                                    client.Send(Datas);

                                    break;
                                }
                            case "ww":
                                {
                                    Program.kimo = ushort.Parse(Data[1]);
                                    break;
                                }
                            case "halo":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.MagicDefender);
                                    break;
                                }
                            case "halo2":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo2);

                                    break;
                                }
                            case "halo3":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo3);
                                    break;
                                }
                            case "halo4":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo4);

                                    break;
                                }
                            case "halo29":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo29);
                                    break;
                                }
                            case "halo30":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo30);

                                    break;
                                }
                            case "halo31":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo31);
                                    break;
                                }
                            case "halo32":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo32);

                                    break;
                                }
                            case "halo33":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo33);
                                    break;
                                }
                            case "halo34":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo34);

                                    break;
                                }
                            case "halo35":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo35);
                                    break;
                                }
                            case "halo36":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo36);

                                    break;
                                }
                            case "halo37":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo37);
                                    break;
                                }
                            case "halo38":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo38);

                                    break;
                                }
                            case "halo39":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo39);
                                    break;
                                }
                            case "halo40":
                                {
                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo40);
                                    break;
                                }
                            case "halo41":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo41);
                                    break;
                                }
                            case "halo42":
                                {
                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo42);
                                    break;
                                }
                            case "halo43":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo43);
                                    break;
                                }
                            case "halo44":
                                {
                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo44);
                                    break;
                                }
                            case "halo45":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo45);
                                    break;
                                }
                            case "halo46":
                                {
                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo46);

                                    break;
                                }
                            case "halo47":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo47);
                                    break;
                                }
                            case "halo48":
                                {
                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo48);
                                    break;
                                }
                            case "halo49":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo49);
                                    break;
                                }
                            case "halo50":
                                {
                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo50);
                                    break;
                                }
                            case "halo51":
                                {
                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo51);
                                    break;
                                }
                            case "halo52":
                                {
                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo52);

                                    break;
                                }
                            case "halo53":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo53);
                                    break;
                                }
                            case "halo54":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo54);

                                    break;
                                }
                            case "halo55":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo55);
                                    break;
                                }
                            case "halo56":
                                {

                                    //client.Entity.StatusFlag2 = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo56);

                                    break;
                                }
                            case "halo57":
                                {

                                    // client.Entity.StatusFlag = 0;
                                    client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo57);
                                    break;
                                }

                            case "lottery1":
                                {

                                    break;
                                }
                            case "bbs":
                                {

                                    Console.WriteLine(" " + client.Entity.BattlePower + "");
                                    break;
                                }
                            case "lottery2":
                                {

                                    uint randprize = (uint)PhoenixProject.ServerBase.Kernel.Random.Next(1, (int)Database.DROP_SOULS.Count_Jar);
                                    //Database.Monster.Souls[randsouls].item_id
                                    uint ItemID = ServerBase.Kernel.JarItem[randprize].item_id;
                                    client.Inventory.Add(ItemID, 0, 1);
                                    ServerBase.Kernel.SendWorldMessage(new Message("Congratulations, " + client.Entity.Name + " has finished CloudSaint Jar Quest and Obtained " + Database.ConquerItemInformation.BaseInformations[ItemID].Name + "  !", System.Drawing.Color.Red, Network.GamePackets.Message.Talk), ServerBase.Kernel.GamePool.Values);
                                    Data data = new Data(true);
                                    data.ID = GamePackets.Data.OpenCustom;
                                    data.UID = client.Entity.UID;
                                    data.TimeStamp = Time32.Now;
                                    data.dwParam = 3382;
                                    data.wParam1 = client.Entity.X;
                                    data.wParam2 = client.Entity.Y;
                                    client.Send(data);
                                    break;
                                }
                            case "kimo":
                                {

                                    Program.kimo = ushort.Parse(Data[1]);
                                    // Program.kimo2 = ushort.Parse(Data[2]);
                                    // Program.kimo3 = ushort.Parse(Data[3]);
                                    testpacket str = new testpacket(true);
                                    client.Send(str);
                                    break;
                                }
                            case "3":
                                {
                                    PhoenixProject.Game.KimoCarnaval.Load();
                                    /*Program.kimo3 = ushort.Parse(Data[1]);
                                    Network.GamePackets.Weather weather = new Network.GamePackets.Weather(true);
                                    weather.WeatherType = (uint)Program.kimo3;
                                    weather.Intensity = 100;
                                    weather.Appearence = 2;
                                    weather.Direction = 4;
                                    client.Send(weather);*/
                                    break;
                                }
                            case "kimo4":
                                {
                                    //PhoenixProject.Game.KimoCarnaval.Npc();
                                    /*Program.kimo3 = ushort.Parse(Data[1]);
                                    Network.GamePackets.Weather weather = new Network.GamePackets.Weather(true);
                                    weather.WeatherType = (uint)Program.kimo3;
                                    weather.Intensity = 100;
                                    weather.Appearence = 2;
                                    weather.Direction = 4;
                                    client.Send(weather);*/
                                    break;
                                }
                            case "33":
                                {
                                    client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker;

                                    /*Program.kimo3 = ushort.Parse(Data[1]);
                                    Data data = new Data(true);
                                    data.ID = GamePackets.Data.OpenCustom;
                                    data.UID = client.Entity.UID;
                                    data.TimeStamp = Time32.Now;
                                    data.dwParam = (uint)Program.kimo3;
                                    data.wParam1 = client.Entity.X;
                                    data.wParam2 = client.Entity.Y;
                                    client.Send(data);*/

                                    // client.Send(new Data(true) { UID = client.Entity.UID, ID = GamePackets.Data.OpenWindow, dwParam = GamePackets.Data.CustomCommands.Reincarnation, wParam1 = client.Entity.X, wParam2 = client.Entity.Y });

                                    break;
                                }
                            case "p1":
                                {
                                    client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker2;
                                    break;
                                }
                            case "p2":
                                {
                                    client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker3;
                                    break;
                                }
                            case "p3":
                                {
                                    client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker4;
                                    break;
                                }
                            case "p4":
                                {
                                    client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker;
                                    break;
                                }
                            case "p5":
                                {
                                    client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker;
                                    break;
                                }
                            case "p6":
                                {
                                    client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker5;
                                    break;
                                }
                            case "bb":
                                {

                                    PhoenixProject.Database.MySqlCommand command = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.DELETE);
                                    command.Delete("skills", "ID", "1110").And("EntityID", client.Entity.UID).Execute();

                                    break;
                                }
                            case "bo":
                                {
                                    _String str = new _String(true);
                                    str.UID = client.Entity.UID;
                                    str.TextsCount = 1;
                                    str.Type = _String.Sound;
                                    str.Texts.Add("zhengfu");
                                    client.Send(str);
                                    //client.Send(new Data(true) { UID = client.Entity.UID, ID = Network.GamePackets.Data.OpenWindow, dwParam = uint.Parse(Data[1]), wParam1 = client.Entity.X, wParam2 = client.Entity.Y });
                                    //datas.dwParam = uint.Parse(Data[1]);
                                    //client.Send(datas);
                                    break;
                                }

                            case "pok":
                                {

                                    break;
                                }
                            case "n":
                                {

                                    {
                                        Random disco = new Random();
                                        uint discocolor = (uint)disco.Next(50000, 999999999);
                                        Program.ScreenColor = 5855577;
                                        foreach (Client.GameState C in ServerBase.Kernel.GamePool.Values)
                                        {
                                            Data datas = new Data(true);
                                            datas.UID = C.Entity.UID;
                                            datas.ID = 104;
                                            Program.ScreenColor = 5855577;
                                            datas.dwParam = 5855577;
                                            C.Send(datas);
                                        }
                                    }

                                    break;
                                }
                            case "d":
                                {

                                    {
                                        Random disco = new Random();
                                        uint discocolor = (uint)disco.Next(50000, 999999999);
                                        Program.ScreenColor = 0;
                                        foreach (Client.GameState C in ServerBase.Kernel.GamePool.Values)
                                        {
                                            Data datas = new Data(true);
                                            datas.UID = C.Entity.UID;
                                            datas.ID = 104;
                                            datas.dwParam = 0;
                                            //datas.wParam1 = (ushort)Program.ScreenColor;
                                            //datas.wParam2 = (ushort)Program.ScreenColor;
                                            //datas.wParam2 = 104;
                                            //datas.wParam4 = (ushort)Program.ScreenColor;
                                            C.Send(datas);
                                        }
                                    }

                                    break;
                                }
                            case "give":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            switch (Data[2])
                                            {
                                                case "vip":
                                                    Client.Entity.VIPLevel = byte.Parse(Data[3]);
                                                    break;
                                                case "cps":
                                                    Client.Entity.ConquerPoints += uint.Parse(Data[3]);
                                                    break;
                                                case "money":
                                                    Client.Entity.Money += uint.Parse(Data[3]);
                                                    break;
                                                case "spell":
                                                    Client.AddSpell(new Spell(true) { ID = ushort.Parse(Data[3]) });
                                                    break;
                                                case "level":
                                                    Client.Entity.Level = byte.Parse(Data[3]);
                                                    break;
                                                case "plustone":
                                                    {
                                                        UInt32 ItemId = UInt32.Parse(Data[3]);
                                                        if (Database.ConquerItemInformation.BaseInformations.ContainsKey(ItemId))
                                                        {
                                                            Database.ConquerItemBaseInformation iteminfo;
                                                            if (Database.ConquerItemInformation.BaseInformations.TryGetValue(ItemId, out iteminfo))
                                                            {
                                                                Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
                                                                newItem.ID = iteminfo.ID;
                                                                Byte Plus = (Byte)(newItem.ID % 730000);
                                                                Console.WriteLine("Item Plus " + Plus);
                                                                newItem.Plus = (Byte)(newItem.ID % 730000);
                                                                Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
                                                            }
                                                        }
                                                        break;
                                                    }
                                                case "item":
                                                    {
                                                        string ItemName = Data[3];
                                                        Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
                                                        switch (Data[4].ToLower())
                                                        {
                                                            case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
                                                            case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
                                                            case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
                                                            case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
                                                            case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
                                                            case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
                                                            case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
                                                            case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
                                                            case "super": Quality = Game.Enums.ItemQuality.Super; break;
                                                            case "other": Quality = Game.Enums.ItemQuality.Other; break;
                                                            default:
                                                                {
                                                                    Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[4]);
                                                                    break;
                                                                }
                                                        }
                                                        Database.ConquerItemBaseInformation CIBI = null;
                                                        foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
                                                        {
                                                            if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
                                                            {
                                                                CIBI = infos;
                                                            }
                                                        }
                                                        if (CIBI == null)
                                                            break;
                                                        Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
                                                        newItem.ID = CIBI.ID;
                                                        newItem.Durability = CIBI.Durability;
                                                        newItem.MaximDurability = CIBI.Durability;
                                                        if (Data.Length > 3)
                                                        {
                                                            byte plus = 0;
                                                            byte.TryParse(Data[3], out plus);
                                                            newItem.Plus = Math.Min((byte)15, plus);
                                                            if (Data.Length > 4)
                                                            {
                                                                byte bless = 0;
                                                                byte.TryParse(Data[6], out bless);
                                                                newItem.Bless = Math.Min((byte)7, bless);
                                                                if (Data.Length > 5)
                                                                {
                                                                    byte ench = 0;
                                                                    byte.TryParse(Data[7], out ench);
                                                                    newItem.Enchant = Math.Min((byte)255, ench);
                                                                    if (Data.Length > 6)
                                                                    {
                                                                        byte soc1 = 0;
                                                                        byte.TryParse(Data[8], out soc1);
                                                                        if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
                                                                        {
                                                                            newItem.SocketOne = (Game.Enums.Gem)soc1;
                                                                        }
                                                                        if (Data.Length > 7)
                                                                        {
                                                                            byte soc2 = 0;
                                                                            byte.TryParse(Data[9], out soc2);
                                                                            if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
                                                                            {
                                                                                newItem.SocketTwo = (Game.Enums.Gem)soc2;
                                                                            }
                                                                        }
                                                                        if (Data.Length > 10)
                                                                        {
                                                                            byte R = 0, G = 0, B = 0;
                                                                            byte.TryParse(Data[10], out R);
                                                                            byte.TryParse(Data[11], out G);
                                                                            byte.TryParse(Data[12], out B);
                                                                            newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                        newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                                                        Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
                                                        break;
                                                    }
                                                case "equip":
                                                    {
                                                        string ItemName = Data[3];
                                                        Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3;
                                                        Database.ConquerItemBaseInformation CIBI = null;
                                                        foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
                                                        {
                                                            if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
                                                            {
                                                                CIBI = infos;
                                                            }
                                                        }
                                                        if (CIBI == null)
                                                            break;
                                                        Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
                                                        newItem.ID = CIBI.ID;
                                                        newItem.Position = 9;
                                                        newItem.Durability = CIBI.Durability;
                                                        newItem.MaximDurability = CIBI.Durability;
                                                        newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                                                        Client.Equipment.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
                                                        break;
                                                    }
                                            }
                                            break;
                                        }
                                    }
                                    break;
                                }
                            case "cps":
                                {
                                    client.Entity.ConquerPoints = uint.Parse(Data[1]);
                                    break;
                                }
                            case "hors":
                                {
                                    client.Entity.RacePoints = uint.Parse(Data[1]);
                                    break;
                                }
                            case "money":
                                {
                                    client.Entity.Money = uint.Parse(Data[1]);
                                    break;
                                }

                            case "open":
                                {
                                    GamePackets.Data data = new GamePackets.Data(true);
                                    data.ID = GamePackets.Data.OpenCustom;
                                    data.UID = client.Entity.UID;
                                    data.TimeStamp = Time32.Now;
                                    data.dwParam = uint.Parse(Data[1]);
                                    data.wParam1 = client.Entity.X;
                                    data.wParam2 = client.Entity.Y;
                                    client.Send(data);
                                    break;
                                }
                            case "xp":
                                {
                                    client.Entity.AddFlag(Update.Flags.XPList);
                                    client.XPListStamp = Time32.Now;
                                    break;
                                }

                            case "guildwar":
                                {
                                    switch (Data[1])
                                    {
                                        case "on":
                                            {
                                                if (!Game.ConquerStructures.Society.GuildWar.IsWar)
                                                {
                                                    Game.ConquerStructures.Society.GuildWar.Start();
                                                }
                                                break;
                                            }
                                        case "off":
                                            {
                                                if (Game.ConquerStructures.Society.GuildWar.IsWar)
                                                {
                                                    Game.ConquerStructures.Society.GuildWar.End();
                                                }
                                                break;
                                            }
                                    }
                                    break;
                                }

                        }
                    }
                    if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameMaster
                    || client.Account.State == PhoenixProject.Database.AccountTable.AccountState.ProjectManager || client.Account.State == PhoenixProject.Database.AccountTable.AccountState.Coder)
                    {
                        switch (Data[0])
                        {
                            case "invisible":
                                Console.WriteLine("sd");
                                break;
                            /* case "reloadmobs":
                                 {
                                     client.Map.FreezeMonsters = true;
                                     var Clone = client.Map.Entities.Base.Values.ToArray();
                                     foreach (var mob in Clone)
                                         if (!mob.Companion)
                                         {
                                             client.Map.Floor[mob.X, mob.Y, PhoenixProject.Game.MapObjectType.Monster, mob] = true;
                                             client.Map.Entities.Remove(mob.UID);
                                         }
                                     Clone = new Game.Entity[0];
                                     client.Map.EntityUIDCounter.Now = 400000;
                                     client.Map.LoadMonsters();
                                     client.Map.FreezeMonsters = false;
                                     foreach (Client.GameState Client in ServerBase.Kernel.GamePool.Values)
                                     {
                                         if (Client.Map.ID == client.Map.ID)
                                         {
                                             Client.Entity.Teleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y);
                                         }
                                     }
                                     break;
                                 }*/
                            case "mobmesh":
                                {
                                    client.Entity.Body = ushort.Parse(Data[1]);
                                    break;
                                }
                            case "trace":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            client.Entity.Teleport(pClient.Entity.MapID, pClient.Entity.X, pClient.Entity.Y);
                                        }
                                    }
                                    break;
                                }
                            case "bring":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]) || Data[1].ToLower() == "all")
                                            if (Data[1].ToLower() == "all")
                                            {
                                                pClient.Entity.Teleport(client.Entity.MapID,
                                                    (ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5),
                                                    (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5));
                                            }
                                            else
                                                pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);

                                    }
                                    break;
                                }
                            case "restart":
                                {
                                    Program.CommandsAI("@restart");
                                    break;
                                }
                            case "kick":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            Client.Disconnect();
                                            break;
                                        }
                                    }
                                    break;
                                }
                            case "ban":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Account.State >= client.Account.State)
                                            continue;
                                        if (Client.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            Client.Account.State = PhoenixProject.Database.AccountTable.AccountState.Banned;
                                            Client.Account.Savekimo();
                                            Client.Disconnect();
                                            break;
                                        }
                                    }
                                    break;
                                }
                            case "unban":
                                {
                                    var Account = new Database.AccountTable(Data[1]);
                                    if (Account.State == PhoenixProject.Database.AccountTable.AccountState.Banned)
                                    {
                                        Account.State = PhoenixProject.Database.AccountTable.AccountState.Player;
                                        Account.Savekimo();
                                    }
                                    break;
                                }
                            case "chatban":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Entity.Name.Contains(Data[1]))
                                        {
                                            Client.ChatBanLasts = uint.Parse(Data[2]);
                                            Client.ChatBanTime = DateTime.Now;
                                            Client.ChatBanned = true;
                                        }
                                    }
                                    break;
                                }
                            case "increaseexp":
                                {
                                    client.IncreaseExperience(ulong.Parse(Data[1]), true);
                                    break;
                                }
                            case "chatunban":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Entity.Name.Contains(Data[1]))
                                        {
                                            Client.ChatBanned = false;
                                        }
                                    }
                                    break;
                                }
                            case "bc":
                                {
                                    Game.ConquerStructures.Broadcast.Broadcasts.Clear();
                                    Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new PhoenixProject.Game.ConquerStructures.Broadcast.BroadcastStr();
                                    broadcast.EntityID = client.Entity.UID;
                                    broadcast.EntityName = client.Entity.Name;
                                    broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next;
                                    broadcast.Message = Message.Remove(0, 2);
                                    ServerBase.Kernel.SendWorldMessage(new Message(Message.Remove(0, 2), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), ServerBase.Kernel.GamePool.Values);
                                    Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID = 1;
                                    Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast;
                                    break;
                                }
                            case "broadcast":
                                {
                                    Game.ConquerStructures.Broadcast.Broadcasts.Clear();
                                    Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new PhoenixProject.Game.ConquerStructures.Broadcast.BroadcastStr();
                                    broadcast.EntityID = client.Entity.UID;
                                    broadcast.EntityName = client.Entity.Name;
                                    broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next;
                                    broadcast.Message = Message.Remove(0, 9);
                                    ServerBase.Kernel.SendWorldMessage(new Message(Message.Remove(0, 9), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), ServerBase.Kernel.GamePool.Values);
                                    Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID = 1;
                                    Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast;
                                    break;
                                }
                            case "ann":
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values);
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values);
                                    break;
                                }
                            case "announce":
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values);
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values);
                                    break;
                                }
                            case "arenapoints":
                                {
                                    client.ArenaStatistic.ArenaPoints = uint.Parse(Data[1]);
                                    client.ArenaStatistic.Send(client);
                                    break;
                                }
                            case "record":
                                {
                                    if (client.Account.State != Database.AccountTable.AccountState.ProjectManager)
                                        break;
                                    switch (Data[1])
                                    {
                                        case "on": client.Entity.Mode = Game.Enums.Mode.Recording; break;
                                        case "off": Program.CommandsAI("/saverecord"); break;
                                    } break;
                                }
                            case "clearinventory":
                                {
                                    Interfaces.IConquerItem[] inventory = new Interfaces.IConquerItem[client.Inventory.Objects.Length];
                                    client.Inventory.Objects.CopyTo(inventory, 0);

                                    foreach (Interfaces.IConquerItem item in inventory)
                                    {
                                        client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove);
                                    }
                                    break;
                                }
                            case "online":
                                {
                                    client.Send(new Message("Online players count: " + ServerBase.Kernel.GamePool.Count, System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                    string line = "";
                                    foreach (Client.GameState pClient in ServerBase.Kernel.GamePool.Values)
                                        line += pClient.Entity.Name + ",";

                                    if (line.Length >= 255)
                                        return true;
                                    client.Send(new GamePackets.Message(line, System.Drawing.Color.Beige, GamePackets.Message.Talk));
                                    break;
                                }
                            case "reallot":
                                {
                                    if (client.Entity.Reborn != 0)
                                    {
                                        client.Entity.Agility = 0;
                                        client.Entity.Strength = 0;
                                        client.Entity.Vitality = 1;
                                        client.Entity.Spirit = 0;
                                        if (client.Entity.Reborn == 1)
                                        {
                                            client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity.FirstRebornLevel, client.Entity.FirstRebornLevel)
                                                + 52 + 3 * (client.Entity.Level - 15));
                                        }
                                        else
                                        {
                                            client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity.FirstRebornLevel, client.Entity.FirstRebornClass) +
                                                client.ExtraAtributePoints(client.Entity.SecondRebornLevel, client.Entity.SecondRebornClass) + 52 + 3 * (client.Entity.Level - 15));
                                        }
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                    }
                                    break;
                                }
                            case "str":
                                {
                                    ushort atr = 0;
                                    ushort.TryParse(Data[1], out atr);
                                    if (client.Entity.Atributes >= atr)
                                    {
                                        client.Entity.Strength += atr;
                                        client.Entity.Atributes -= atr;
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                    }
                                    break;
                                }
                            case "agi":
                                {
                                    ushort atr = 0;
                                    ushort.TryParse(Data[1], out atr);
                                    if (client.Entity.Atributes >= atr)
                                    {
                                        client.Entity.Agility += atr;
                                        client.Entity.Atributes -= atr;
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                    }
                                    break;
                                }
                            case "vit":
                                {
                                    ushort atr = 0;
                                    ushort.TryParse(Data[1], out atr);
                                    if (client.Entity.Atributes >= atr)
                                    {
                                        client.Entity.Vitality += atr;
                                        client.Entity.Atributes -= atr;
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                    }
                                    break;
                                }
                            case "spi":
                                {
                                    ushort atr = 0;
                                    ushort.TryParse(Data[1], out atr);
                                    if (client.Entity.Atributes >= atr)
                                    {
                                        client.Entity.Spirit += atr;
                                        client.Entity.Atributes -= atr;
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                    }
                                    break;
                                }
                            case "reborn":
                                {
                                    if (client.Entity.Reborn < 2)
                                    {
                                        if (client.Entity.Class % 10 == 5)
                                        {
                                            if (client.Entity.Class != 15 &&
                                                client.Entity.Class != 25 &&
                                                client.Entity.Class != 45 &&
                                                client.Entity.Class != 55 &&
                                                client.Entity.Class != 65 &&
                                                client.Entity.Class != 75 &&
                                                client.Entity.Class != 135 &&
                                                client.Entity.Class != 145)
                                            {
                                                client.Send(new Message("You need to be an existing class.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                            }
                                            else
                                            {
                                                byte newclass = 10;
                                                byte.TryParse(Data[1], out newclass);
                                                if (newclass != 11 &&
                                                newclass != 21 &&
                                                newclass != 41 &&
                                                newclass != 51 &&
                                                newclass != 61 &&
                                                newclass != 71 &&
                                                newclass != 132 &&
                                                newclass != 142)
                                                {
                                                    client.Send(new Message("You need to reborn into an existing class. For fire class = 142 and for waters class = 132.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                                }
                                                else
                                                {
                                                    if (!client.Reborn(newclass))
                                                        client.Send(new Message("You need atleast 2 spaces in your inventory.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                                }
                                            }
                                        }
                                        else
                                            client.Send(new Message("You need to be a master to be able to reborn.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                    }
                                    else
                                        client.Send(new Message("You can't reborn any more.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                    break;
                                }

                            case "dc":
                                {
                                    client.Disconnect();
                                    break;
                                }
                            case "prof":
                                {
                                    Interfaces.IProf proficiency = new GamePackets.Proficiency(true);
                                    if (Data.Length > 1)
                                        proficiency.ID = ushort.Parse(Data[1]);
                                    if (Data.Length > 2)
                                        proficiency.Level = byte.Parse(Data[2]);
                                    if (Data.Length > 3)
                                        proficiency.Experience = uint.Parse(Data[3]);
                                    client.AddProficiency(proficiency);
                                    break;
                                }
                            case "spell":
                                {
                                    Interfaces.ISkill spell = new GamePackets.Spell(true);
                                    if (Data.Length > 1)
                                        spell.ID = ushort.Parse(Data[1]);
                                    if (Data.Length > 2)
                                        spell.Level = byte.Parse(Data[2]);
                                    if (Data.Length > 3)
                                        spell.Experience = uint.Parse(Data[3]);
                                    client.AddSpell(spell);
                                    break;
                                }

                            case "level":
                                {
                                    byte level = client.Entity.Level;
                                    byte.TryParse(Data[1], out level);
                                    level = Math.Min((byte)140, Math.Max((byte)1, level));
                                    client.Entity.Level = level;
                                    client.Entity.Experience = 0;
                                    if (client.Entity.Reborn == 0)
                                    {
                                        Database.DataHolder.GetStats(client.Entity.Class, level, client);
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                        client.GemAlgorithm();
                                    }
                                    break;
                                }
                            case "class":
                                {
                                    byte _class = client.Entity.Class;
                                    byte.TryParse(Data[1], out _class);
                                    _class = Math.Min((byte)145, Math.Max((byte)1, _class));
                                    client.Entity.Class = _class;
                                    if (client.Entity.Reborn == 0)
                                    {
                                        Database.DataHolder.GetStats(_class, client.Entity.Level, client);
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                        client.GemAlgorithm();
                                    }
                                    break;
                                }
                            case "body":
                                {
                                    ushort body = client.Entity.Body;
                                    ushort.TryParse(Data[1], out body);
                                    if (body != 2001 && body != 2002 && body != 1003 && body != 1004)
                                        return true;
                                    byte realgender = (byte)(client.Entity.Body % 10);
                                    byte gender = (byte)(body % 10);
                                    if (client.Equipment.Objects[8] != null)
                                        if (gender >= 3 && realgender <= 2)
                                            return true;
                                    client.Entity.Body = body;
                                    if (gender >= 3 && realgender <= 2)
                                        client.Entity.Face -= 200;
                                    if (gender <= 2 && realgender >= 3)
                                        client.Entity.Face += 200;
                                    break;
                                }
                            case "hair":
                                {
                                    ushort hair = client.Entity.HairStyle;
                                    ushort.TryParse(Data[1], out hair);
                                    client.Entity.HairStyle = hair;
                                    break;
                                }
                            case "map":
                                {
                                    client.Send(new Message("Map: " + client.Entity.MapID, System.Drawing.Color.Blue, GamePackets.Message.TopLeft));
                                    break;
                                }
                            case "map2":
                                {
                                    client.Send(new Message("Map base: " + client.Map.BaseID, System.Drawing.Color.Blue, GamePackets.Message.TopLeft));
                                    break;
                                }
                            case "tele":
                                {
                                    if (Data.Length > 3)
                                    {
                                        client.Entity.Teleport(ulong.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
                                    }
                                    break;
                                }
                            case "tele2":
                                {
                                    if (Data.Length > 3)
                                    {
                                        client.Entity.TeleportHouse(ulong.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
                                    }
                                    break;
                                }
                            case "transform":
                                {
                                    if (client.Entity.Dead)
                                        break;
                                    bool wasTransformated = client.Entity.Transformed;
                                    if (wasTransformated)
                                    {
                                        client.Entity.Hitpoints = client.Entity.MaxHitpoints;
                                        client.Entity.TransformationID = 0;
                                        client.Entity.TransformationStamp = Time32.Now;
                                        return true;
                                    }
                                    ushort transformation = client.Entity.TransformationID;
                                    ushort.TryParse(Data[1], out transformation);
                                    client.Entity.TransformationID = transformation;
                                    client.Entity.TransformationStamp = Time32.Now;
                                    client.Entity.TransformationTime = 110;
                                    SpellUse spellUse = new SpellUse(true);
                                    spellUse.Attacker = client.Entity.UID;
                                    spellUse.SpellID = 1360;
                                    spellUse.SpellLevel = 4;
                                    spellUse.X = client.Entity.X;
                                    spellUse.Y = client.Entity.Y;
                                    spellUse.Targets.Add(client.Entity.UID, (uint)0);
                                    client.Send(spellUse);
                                    client.Entity.TransformationMaxHP = 3000;
                                    double maxHP = client.Entity.MaxHitpoints;
                                    double HP = client.Entity.Hitpoints;
                                    double point = HP / maxHP;

                                    client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point);
                                    client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false);
                                    break;
                                }
                            case "item":
                                {
                                    if (Data.Length > 2)
                                    {
                                        string ItemName = Data[1];
                                        Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
                                        switch (Data[2].ToLower())
                                        {
                                            case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
                                            case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
                                            case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
                                            case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
                                            case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
                                            case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
                                            case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
                                            case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
                                            case "super": Quality = Game.Enums.ItemQuality.Super; break;
                                            case "other": Quality = Game.Enums.ItemQuality.Other; break;
                                            default:
                                                {
                                                    Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[2]);
                                                    break;
                                                }
                                        }
                                        Database.ConquerItemBaseInformation CIBI = null;
                                        foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
                                        {
                                            if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
                                            {
                                                CIBI = infos;
                                            }
                                        }
                                        if (CIBI == null)
                                            break;
                                        Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
                                        newItem.ID = CIBI.ID;
                                        newItem.Durability = CIBI.Durability;
                                        newItem.MaximDurability = CIBI.Durability;
                                        if (Data.Length > 3)
                                        {
                                            byte plus = 0;
                                            byte.TryParse(Data[3], out plus);
                                            newItem.Plus = Math.Min((byte)12, plus);
                                            if (Data.Length > 4)
                                            {
                                                byte bless = 0;
                                                byte.TryParse(Data[4], out bless);
                                                newItem.Bless = Math.Min((byte)7, bless);
                                                if (Data.Length > 5)
                                                {
                                                    byte ench = 0;
                                                    byte.TryParse(Data[5], out ench);
                                                    newItem.Enchant = Math.Min((byte)255, ench);
                                                    if (Data.Length > 6)
                                                    {
                                                        byte soc1 = 0;
                                                        byte.TryParse(Data[6], out soc1);
                                                        if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
                                                        {
                                                            newItem.SocketOne = (Game.Enums.Gem)soc1;
                                                        }
                                                        if (Data.Length > 7)
                                                        {
                                                            byte soc2 = 0;
                                                            byte.TryParse(Data[7], out soc2);
                                                            if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
                                                            {
                                                                newItem.SocketTwo = (Game.Enums.Gem)soc2;
                                                            }
                                                        }
                                                        if (Data.Length > 10)
                                                        {
                                                            byte R = 0, G = 0, B = 0;
                                                            byte.TryParse(Data[8], out R);
                                                            byte.TryParse(Data[9], out G);
                                                            byte.TryParse(Data[10], out B);
                                                            newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                                        if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameMaster)
                                            newItem.Bound = true;
                                        client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
                                    }
                                    break;
                                }
                        }
                        return true;
                    }
                    #endregion

                    #region VIPs
                    if (client.Entity.VIPLevel > 0)
                    {
                        switch (Data[0])
                        {
                            case "transform":
                                {
                                    if (client.Entity.Dead)
                                        break;
                                    bool wasTransformated = client.Entity.Transformed;
                                    if (wasTransformated)
                                    {
                                        client.Entity.Hitpoints = client.Entity.MaxHitpoints;
                                        client.Entity.TransformationID = 0;
                                        client.Entity.TransformationStamp = Time32.Now;
                                        return true;
                                    }
                                    ushort transformation = client.Entity.TransformationID;
                                    ushort.TryParse(Data[1], out transformation);
                                    client.Entity.TransformationID = transformation;
                                    client.Entity.TransformationStamp = Time32.Now;
                                    client.Entity.TransformationTime = 110;
                                    SpellUse spellUse = new SpellUse(true);
                                    spellUse.Attacker = client.Entity.UID;
                                    spellUse.SpellID = 1360;
                                    spellUse.SpellLevel = 4;
                                    spellUse.X = client.Entity.X;
                                    spellUse.Y = client.Entity.Y;
                                    spellUse.Targets.Add(client.Entity.UID, (uint)0);
                                    client.Send(spellUse);
                                    client.Entity.TransformationMaxHP = 3000;
                                    double maxHP = client.Entity.MaxHitpoints;
                                    double HP = client.Entity.Hitpoints;
                                    double point = HP / maxHP;

                                    client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point);
                                    client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false);
                                    break;
                                }
                        }
                    }
                    #endregion
                    #region GameHelpers
                    if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameHelper)
                    {
                        switch (Data[0])
                        {
                            case "scroll":
                                {
                                    if (client.Entity.MapID == 700)
                                        break;
                                    switch (Data[1].ToLower())
                                    {
                                        case "tc": client.Entity.Teleport(1002, 430, 380); break;
                                        case "pc": client.Entity.Teleport(1011, 195, 260); break;
                                        case "ac":
                                        case "am": client.Entity.Teleport(1020, 566, 563); break;
                                        case "dc": client.Entity.Teleport(1000, 500, 645); break;
                                        case "bi": client.Entity.Teleport(1015, 723, 573); break;
                                        case "pka": client.Entity.Teleport(1005, 050, 050); break;
                                        case "ma": client.Entity.Teleport(1036, 211, 196); break;
                                        case "ja": client.Entity.Teleport(6000, 100, 100); break;
                                    }
                                    break;
                                }

                            case "summon":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);
                                        }
                                    }
                                    break;
                                }
                            case "arrest":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            pClient.Entity.Teleport(6004, 30, 74);
                                        }
                                    }
                                    break;
                                }
                            case "pkp":
                                {
                                    client.Entity.PKPoints = ushort.Parse(Data[1]);

                                    break;
                                }

                            case "cps":
                                {
                                    client.Entity.ConquerPoints = uint.Parse(Data[1]);
                                    break;
                                }
                            case "money":
                                {
                                    client.Entity.Money = uint.Parse(Data[1]);
                                    break;
                                }

                            case "xp":
                                {
                                    client.Entity.AddFlag(Update.Flags.XPList);
                                    client.XPListStamp = Time32.Now;
                                    break;
                                }

                        }
                    }
                    if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameHelper)
                    {
                        switch (Data[0])
                        {
                            case "invisible":
                                Console.WriteLine("Hammy");
                                break;
                            case "arrest":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            pClient.Entity.Teleport(6004, 30, 74);
                                        }
                                    }
                                    break;
                                }
                            case "trace":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            client.Entity.Teleport(pClient.Entity.MapID, pClient.Entity.X, pClient.Entity.Y);
                                        }
                                    }
                                    break;
                                }
                            case "bring":
                                {
                                    foreach (var pClient in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (pClient.Entity.Name.ToLower().Contains(Data[1]) || Data[1].ToLower() == "all")
                                            if (Data[1].ToLower() == "all")
                                            {
                                                pClient.Entity.Teleport(client.Entity.MapID,
                                                    (ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5),
                                                    (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5));
                                            }
                                            else
                                                pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y);

                                    }
                                    break;
                                }
                            case "kick":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            Client.Disconnect();
                                            break;
                                        }
                                    }
                                    break;
                                }
                            case "ban":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Account.State >= client.Account.State)
                                            continue;
                                        if (Client.Entity.Name.ToLower().Contains(Data[1]))
                                        {
                                            Client.Account.State = PhoenixProject.Database.AccountTable.AccountState.Banned;
                                            Client.Account.Savekimo();
                                            Client.Disconnect();
                                            break;
                                        }
                                    }
                                    break;
                                }
                            case "unban":
                                {
                                    var Account = new Database.AccountTable(Data[1]);
                                    if (Account.State == PhoenixProject.Database.AccountTable.AccountState.Banned)
                                    {
                                        Account.State = PhoenixProject.Database.AccountTable.AccountState.Player;
                                        Account.Savekimo();
                                    }
                                    break;
                                }
                            case "chatban":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Entity.Name.Contains(Data[1]))
                                        {
                                            Client.ChatBanLasts = uint.Parse(Data[2]);
                                            Client.ChatBanTime = DateTime.Now;
                                            Client.ChatBanned = true;
                                        }
                                    }
                                    break;
                                }

                            case "chatunban":
                                {
                                    foreach (var Client in ServerBase.Kernel.GamePool.Values)
                                    {
                                        if (Client.Entity.Name.Contains(Data[1]))
                                        {
                                            Client.ChatBanned = false;
                                        }
                                    }
                                    break;
                                }

                            case "ann":
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values);
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values);
                                    break;
                                }
                            case "announce":
                                {
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values);
                                    ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values);
                                    break;
                                }

                            case "record":
                                {
                                    if (client.Account.State != Database.AccountTable.AccountState.ProjectManager)
                                        break;
                                    switch (Data[1])
                                    {
                                        case "on": client.Entity.Mode = Game.Enums.Mode.Recording; break;
                                        case "off": Program.CommandsAI("/saverecord"); break;
                                    } break;
                                }
                            case "clearinventory":
                                {
                                    Interfaces.IConquerItem[] inventory = new Interfaces.IConquerItem[client.Inventory.Objects.Length];
                                    client.Inventory.Objects.CopyTo(inventory, 0);

                                    foreach (Interfaces.IConquerItem item in inventory)
                                    {
                                        client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove);
                                    }
                                    break;
                                }
                            case "online":
                                {
                                    client.Send(new Message("Online players count: " + ServerBase.Kernel.GamePool.Count, System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                    string line = "";
                                    foreach (Client.GameState pClient in ServerBase.Kernel.GamePool.Values)
                                        line += pClient.Entity.Name + ",";

                                    if (line.Length >= 255)
                                        return true;
                                    client.Send(new GamePackets.Message(line, System.Drawing.Color.Beige, GamePackets.Message.Talk));
                                    break;
                                }

                            case "reborn":
                                {
                                    if (client.Entity.Reborn < 2)
                                    {
                                        if (client.Entity.Class % 10 == 5)
                                        {
                                            if (client.Entity.Class != 15 &&
                                                client.Entity.Class != 25 &&
                                                client.Entity.Class != 45 &&
                                                client.Entity.Class != 55 &&
                                                client.Entity.Class != 65 &&
                                                client.Entity.Class != 135 &&
                                                client.Entity.Class != 145)
                                            {
                                                client.Send(new Message("You need to be an existing class.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                            }
                                            else
                                            {
                                                byte newclass = 10;
                                                byte.TryParse(Data[1], out newclass);
                                                if (newclass != 11 &&
                                                newclass != 21 &&
                                                newclass != 41 &&
                                                newclass != 51 &&
                                                newclass != 61 &&
                                                newclass != 132 &&
                                                newclass != 142)
                                                {
                                                    client.Send(new Message("You need to reborn into an existing class. For fire class = 142 and for waters class = 132.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                                }
                                                else
                                                {
                                                    if (!client.Reborn(newclass))
                                                        client.Send(new Message("You need atleast 2 spaces in your inventory.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                                }
                                            }
                                        }
                                        else
                                            client.Send(new Message("You need to be a master to be able to reborn.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                    }
                                    else
                                        client.Send(new Message("You can't reborn any more.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft));
                                    break;
                                }

                            case "dc":
                                {
                                    client.Disconnect();
                                    break;
                                }
                            case "prof":
                                {
                                    Interfaces.IProf proficiency = new GamePackets.Proficiency(true);
                                    if (Data.Length > 1)
                                        proficiency.ID = ushort.Parse(Data[1]);
                                    if (Data.Length > 2)
                                        proficiency.Level = byte.Parse(Data[2]);
                                    if (Data.Length > 3)
                                        proficiency.Experience = uint.Parse(Data[3]);
                                    client.AddProficiency(proficiency);
                                    break;
                                }
                            case "spell":
                                {
                                    Interfaces.ISkill spell = new GamePackets.Spell(true);
                                    if (Data.Length > 1)
                                        spell.ID = ushort.Parse(Data[1]);
                                    if (Data.Length > 2)
                                        spell.Level = byte.Parse(Data[2]);
                                    if (Data.Length > 3)
                                        spell.Experience = uint.Parse(Data[3]);
                                    client.AddSpell(spell);
                                    break;
                                }

                            case "level":
                                {
                                    byte level = client.Entity.Level;
                                    byte.TryParse(Data[1], out level);
                                    level = Math.Min((byte)140, Math.Max((byte)1, level));
                                    client.Entity.Level = level;
                                    client.Entity.Experience = 0;
                                    if (client.Entity.Reborn == 0)
                                    {
                                        Database.DataHolder.GetStats(client.Entity.Class, level, client);
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                        client.GemAlgorithm();
                                    }
                                    break;
                                }
                            case "class":
                                {
                                    byte _class = client.Entity.Class;
                                    byte.TryParse(Data[1], out _class);
                                    _class = Math.Min((byte)145, Math.Max((byte)1, _class));
                                    client.Entity.Class = _class;
                                    if (client.Entity.Reborn == 0)
                                    {
                                        Database.DataHolder.GetStats(_class, client.Entity.Level, client);
                                        client.CalculateStatBonus();
                                        client.CalculateHPBonus();
                                        client.GemAlgorithm();
                                    }
                                    break;
                                }
                            case "body":
                                {
                                    ushort body = client.Entity.Body;
                                    ushort.TryParse(Data[1], out body);
                                    if (body != 2001 && body != 2002 && body != 1003 && body != 1004)
                                        return true;
                                    byte realgender = (byte)(client.Entity.Body % 10);
                                    byte gender = (byte)(body % 10);
                                    if (client.Equipment.Objects[8] != null)
                                        if (gender >= 3 && realgender <= 2)
                                            return true;
                                    client.Entity.Body = body;
                                    if (gender >= 3 && realgender <= 2)
                                        client.Entity.Face -= 200;
                                    if (gender <= 2 && realgender >= 3)
                                        client.Entity.Face += 200;
                                    break;
                                }
                            case "hair":
                                {
                                    ushort hair = client.Entity.HairStyle;
                                    ushort.TryParse(Data[1], out hair);
                                    client.Entity.HairStyle = hair;
                                    break;
                                }
                            case "map":
                                {
                                    client.Send(new Message("Map: " + client.Map.ID, System.Drawing.Color.Blue, GamePackets.Message.TopLeft));
                                    break;
                                }
                            case "tele":
                                {
                                    if (Data.Length > 3)
                                    {
                                        client.Entity.Teleport(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
                                    }
                                    break;
                                }
                            case "tele2":
                                {
                                    if (Data.Length > 3)
                                    {
                                        client.Entity.TeleportHouse(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3]));
                                    }
                                    break;
                                }
                            case "transform":
                                {
                                    if (client.Entity.Dead)
                                        break;
                                    bool wasTransformated = client.Entity.Transformed;
                                    if (wasTransformated)
                                    {
                                        client.Entity.Hitpoints = client.Entity.MaxHitpoints;
                                        client.Entity.TransformationID = 0;
                                        client.Entity.TransformationStamp = Time32.Now;
                                        return true;
                                    }
                                    ushort transformation = client.Entity.TransformationID;
                                    ushort.TryParse(Data[1], out transformation);
                                    client.Entity.TransformationID = transformation;
                                    client.Entity.TransformationStamp = Time32.Now;
                                    client.Entity.TransformationTime = 110;
                                    SpellUse spellUse = new SpellUse(true);
                                    spellUse.Attacker = client.Entity.UID;
                                    spellUse.SpellID = 1360;
                                    spellUse.SpellLevel = 4;
                                    spellUse.X = client.Entity.X;
                                    spellUse.Y = client.Entity.Y;
                                    spellUse.Targets.Add(client.Entity.UID, (uint)0);
                                    client.Send(spellUse);
                                    client.Entity.TransformationMaxHP = 3000;
                                    double maxHP = client.Entity.MaxHitpoints;
                                    double HP = client.Entity.Hitpoints;
                                    double point = HP / maxHP;

                                    client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point);
                                    client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false);
                                    break;
                                }
                            case "item":
                                {
                                    if (Data.Length > 2)
                                    {
                                        string ItemName = Data[1];
                                        Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed;
                                        switch (Data[2].ToLower())
                                        {
                                            case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break;
                                            case "normal": Quality = Game.Enums.ItemQuality.Normal; break;
                                            case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break;
                                            case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break;
                                            case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break;
                                            case "refined": Quality = Game.Enums.ItemQuality.Refined; break;
                                            case "unique": Quality = Game.Enums.ItemQuality.Unique; break;
                                            case "elite": Quality = Game.Enums.ItemQuality.Elite; break;
                                            case "super": Quality = Game.Enums.ItemQuality.Super; break;
                                            case "other": Quality = Game.Enums.ItemQuality.Other; break;
                                            default:
                                                {
                                                    Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[2]);
                                                    break;
                                                }
                                        }
                                        Database.ConquerItemBaseInformation CIBI = null;
                                        foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values)
                                        {
                                            if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10))
                                            {
                                                CIBI = infos;
                                            }
                                        }
                                        if (CIBI == null)
                                            break;
                                        Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true);
                                        newItem.ID = CIBI.ID;
                                        newItem.Durability = CIBI.Durability;
                                        newItem.MaximDurability = CIBI.Durability;
                                        if (Data.Length > 3)
                                        {
                                            byte plus = 0;
                                            byte.TryParse(Data[3], out plus);
                                            newItem.Plus = Math.Min((byte)12, plus);
                                            if (Data.Length > 4)
                                            {
                                                byte bless = 0;
                                                byte.TryParse(Data[4], out bless);
                                                newItem.Bless = Math.Min((byte)7, bless);
                                                if (Data.Length > 5)
                                                {
                                                    byte ench = 0;
                                                    byte.TryParse(Data[5], out ench);
                                                    newItem.Enchant = Math.Min((byte)255, ench);
                                                    if (Data.Length > 6)
                                                    {
                                                        byte soc1 = 0;
                                                        byte.TryParse(Data[6], out soc1);
                                                        if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1))
                                                        {
                                                            newItem.SocketOne = (Game.Enums.Gem)soc1;
                                                        }
                                                        if (Data.Length > 7)
                                                        {
                                                            byte soc2 = 0;
                                                            byte.TryParse(Data[7], out soc2);
                                                            if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2))
                                                            {
                                                                newItem.SocketTwo = (Game.Enums.Gem)soc2;
                                                            }
                                                        }
                                                        if (Data.Length > 10)
                                                        {
                                                            byte R = 0, G = 0, B = 0;
                                                            byte.TryParse(Data[8], out R);
                                                            byte.TryParse(Data[9], out G);
                                                            byte.TryParse(Data[10], out B);
                                                            newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16));
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                        newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8);
                                        if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameMaster)
                                            newItem.Bound = true;
                                        client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd);
                                    }
                                    break;
                                }
                        }
                        return true;
                    }
                    #endregion

                    return true;
                }
                return false;
            }
            catch { client.Send(new Message("Impossible to handle this command. Check your syntax.", System.Drawing.Color.BurlyWood, Message.TopLeft)); return false; }
        }
 public static ISkill LearnableSpell(ushort spellid)
 {
     ISkill spell = new Spell(true);
     spell.ID = spellid;
     return spell;
 }