public static void AddNewNobility(int Identifier, string Name, long Donation)
 {
     using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
     {
         using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false))
         {
             cmd.AddInsertValue("PlayerID", Identifier);
             cmd.AddInsertValue("PlayerName", Name);
             cmd.AddInsertValue("NobilityDonation", Donation);
             cmd.Finish("DB_NobilityBoard");
         }
         sql.Execute();
     }
 }
        public static void AddNewMonsterSpawn(ushort mapid, ushort x, ushort y, int monsterid, int count, int drop, int range, bool guard)
        {
            using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
            {
                using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false))
                {
                    cmd.AddInsertValue("MonsterID", monsterid);
                    cmd.AddInsertValue("CenterX", x);
                    cmd.AddInsertValue("CenterY", y);
                    cmd.AddInsertValue("Drop", drop);
                    cmd.AddInsertValue("Count", count);
                    if (guard)
                        cmd.AddInsertValue("Range", (int)1);
                    else
                        cmd.AddInsertValue("Range", range);
                    cmd.Finish("DB_MobSpawns");
                }
                sql.Execute();
            }

            for (int i = 0; i < count; i++)
            {
                Entities.Monster spawnmob = Core.Kernel.Monsters[monsterid].Copy();
                spawnmob.Direction = (byte)ProjectX_V3_Lib.ThreadSafe.RandomGenerator.Generator.Next(0, 8);
                if (Core.Kernel.Maps[mapid].EnterMap(spawnmob))
                {
                    Maps.MapPoint Location = spawnmob.Map.CreateAvailableLocation<Entities.Monster>(x, y, range);
                    if (Location != null)
                    {
                        spawnmob.X = Location.X;
                        spawnmob.Y = Location.Y;
                        spawnmob.OriginalRange = range;
                        spawnmob.OriginalX = x;
                        spawnmob.OriginalY = y;

                        //if (drop > 0)
                        //{
                        //	spawnmob.DropData = Core.Kernel.DropData[drop].Copy();
                        //}

                        Threads.MonsterThread.AddToMonsterThread(spawnmob, !(((byte)spawnmob.Behaviour) < 3 || spawnmob.Behaviour == Enums.MonsterBehaviour.PhysicalGuard));

                        spawnmob.Screen.UpdateScreen(null);
                    }
                }
            }
        }
        public static void AddNewArenaInfo(Data.ArenaInfo arena)
        {
            using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
            {
                using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false))
                {
                    cmd.AddInsertValue("PlayerID", arena.DatabaseID);
                    cmd.AddInsertValue("PlayerName", arena.Name);
                    cmd.AddInsertValue("ArenaLevel", arena.Level);
                    cmd.AddInsertValue("ArenaClass", arena.Class);
                    cmd.AddInsertValue("Mesh", arena.Mesh);
                    cmd.AddInsertValue("HonorPoints", arena.DatabaseID);
                    cmd.AddInsertValue("ArenaPoints", arena.ArenaPoints);
                    cmd.AddInsertValue("TotalWins", arena.ArenaTotalWins);
                    cmd.AddInsertValue("TotalWinsToday", arena.ArenaWinsToday);
                    cmd.AddInsertValue("TotalLoss", arena.ArenaTotalLoss);
                    cmd.AddInsertValue("TotalLossToday", arena.ArenaLossToday);
                    cmd.AddInsertValue("TodayUpdate", DateTime.Now);
                    cmd.Finish("DB_ArenaQualifier");
                }
                sql.Execute();
            }

            SetRecordID(arena);
        }
        public static void UpdateAuthentication(Client.AuthClient client)
        {
            if (PlayerExists(client.DatabaseUID))
            {
                using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
                {
                    using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.UPDATE, true))
                    {
                        cmd.AddWhereValue("PlayerID", client.DatabaseUID);
                        cmd.AddUpdateValue("PlayerLastEntityUID", client.EntityUID);
                        cmd.AddUpdateValue("PlayerLoginOK", true);

                        cmd.Finish("DB_Players");
                    }
                    sql.Execute();
                }
            }
            else
            {
                using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
                {
                    using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false))
                    {
                        cmd.AddInsertValue("PlayerID", client.DatabaseUID);
                        cmd.AddInsertValue("PlayerNew", true);
                        cmd.AddInsertValue("PlayerAccount", client.Account);
                        cmd.AddInsertValue("PlayerLastEntityUID", client.EntityUID);
                        cmd.AddInsertValue("PlayerLoginOK", true);
                        cmd.AddInsertValue("PlayerServer", client.Server);

                        cmd.Finish("DB_Players");
                    }
                    sql.Execute();
                }
            }
        }
        // -1 = finished
        public static void SaveQuest(Entities.GameClient client, string Name, int Progress, string InfoString)
        {
            bool Exists = false;
            using (var existsql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
            {
                using (var existcmd = new SqlCommandBuilder(existsql, SqlCommandType.SELECT, true))
                {
                    existcmd.AddWhereValue("PlayerID", client.DatabaseUID);
                    existcmd.AddWhereValue("QuestName", Name);
                    existcmd.Finish("DB_Quests");
                }
                Exists = existsql.Read();
            }

            using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
            {
                if (Exists)
                {
                    using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.UPDATE, true))
                    {
                        cmd.AddWhereValue("PlayerID", client.DatabaseUID);
                        cmd.AddWhereValue("QuestName", Name);
                        cmd.AddUpdateValue("QuestProgress", Progress.ToString());
                        cmd.AddUpdateValue("QuestInfo", InfoString);
                        cmd.Finish("DB_Quests");
                    }
                }
                else
                {
                    using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false))
                    {
                        cmd.AddInsertValue("PlayerID", client.DatabaseUID);
                        cmd.AddInsertValue("QuestName", Name);
                        cmd.AddInsertValue("QuestProgress", Progress.ToString());
                        cmd.AddInsertValue("QuestInfo", InfoString);
                        cmd.Finish("DB_Quests");
                    }
                }
                sql.Execute();
            }
        }
        /// <summary>
        /// Saves profs.
        /// </summary>
        /// <param name="client">The client.</param>
        /// <param name="prof">The prof.</param>
        public static void SaveProf(Entities.GameClient client, Data.SpellInfo prof)
        {
            if (!client.LoggedIn || client.IsAIBot)
                return;
            bool Exists = false;
            using (var existsql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
            {
                using (var existcmd = new SqlCommandBuilder(existsql, SqlCommandType.SELECT, true))
                {
                    existcmd.AddWhereValue("PlayerID", client.DatabaseUID);
                    existcmd.AddWhereValue("Prof", prof.ID);
                    existcmd.Finish("DB_PlayerProfs");
                }
                Exists = existsql.Read();
            }

            using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
            {
                if (Exists)
                {
                    using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.UPDATE, true))
                    {
                        cmd.AddWhereValue("PlayerID", client.DatabaseUID);
                        cmd.AddWhereValue("Prof", prof.ID);
                        cmd.AddUpdateValue("ProfLevel", prof.Level);
                        cmd.AddUpdateValue("ProfExperience", prof.Experience);
                        cmd.Finish("DB_PlayerProfs");
                    }
                }
                else
                {
                    using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.INSERT, false))
                    {
                        cmd.AddInsertValue("PlayerID", client.DatabaseUID);
                        cmd.AddInsertValue("Prof", prof.ID);
                        cmd.AddInsertValue("ProfLevel", prof.Level);
                        cmd.AddInsertValue("ProfExperience", prof.Experience);
                        cmd.Finish("DB_PlayerProfs");
                    }
                }

                sql.Execute();
            }
        }