public static Enums.AccountStatus Authenticate(Client.AuthClient client, string Account, string Password)
        {
            try
            {
                using (var sql = new SqlHandler(Program.Config.ReadString("AuthConnectionString")))
                {
                    using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, true))
                    {
                        cmd.AddWhereValue("AccountName", Account);
                        cmd.AddWhereValue("AccountPassword", Password);

                        cmd.Finish("DB_Accounts");
                    }

                    if (!sql.Read())
                        return Enums.AccountStatus.Invalid_AccountID_Or_Password;
                    client.DatabaseUID = sql.ReadInt32("AccountID");
                    client.Server = sql.ReadByte("AccountServer");
                    client.Account = Account;
                    client.Password = Password;
                    using (var sql2 = new SqlHandler(Program.Config.ReadString("AuthConnectionString")))
                    {
                        using (var cmd2 = new SqlCommandBuilder(sql2, SqlCommandType.UPDATE, true))
                        {
                            cmd2.AddWhereValue("AccountID", client.DatabaseUID);
                            if (sql.ReadBoolean("AccountBanned"))
                            {
                                DateTime banexpire = sql.ReadDateTime("AccountBanExpire");
                                if (DateTime.Now < banexpire)
                                    return Enums.AccountStatus.Account_Banned;

                                cmd2.AddUpdateValue("AccountBanned", false);
                            }

                            cmd2.AddUpdateValue("AccountLastLoginIP", client.NetworkClient.IP);
                            cmd2.Finish("DB_Accounts");
                        }
                        sql2.Execute();
                    }
                }
                return Enums.AccountStatus.Ready;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                return Enums.AccountStatus.Datebase_Error;
            }
        }
示例#2
0
        public static bool LoadArenaQualifiers()
        {
            using (var sql = new SqlHandler(Program.Config.ReadString("GameConnectionString")))
            {
                using (var cmd = new SqlCommandBuilder(sql, SqlCommandType.SELECT, false))
                {
                    cmd.Finish("DB_ArenaQualifier");
                }
                while (sql.Read())
                {
                    Data.ArenaInfo arena = new ProjectX_V3_Game.Data.ArenaInfo();
                    arena.ArenaID = sql.ReadInt32("ArenaID");
                    arena.DatabaseID = sql.ReadInt32("PlayerID");
                    arena.Level = sql.ReadUInt32("ArenaLevel");
                    arena.Class = sql.ReadUInt32("ArenaClass");
                    arena.Name = sql.ReadString("PlayerName");
                    arena.Mesh = sql.ReadUInt32("Mesh");
                    arena.ArenaTotalWins = sql.ReadUInt32("TotalWins");
                    arena.ArenaWinsToday = sql.ReadUInt32("TotalWinsToday");
                    arena.ArenaTotalLoss = sql.ReadUInt32("TotalLoss");
                    arena.ArenaLossToday = sql.ReadUInt32("TotalLossToday");
                    arena.ArenaPoints = sql.ReadUInt32("ArenaPoints");
                    arena.ArenaHonorPoints = sql.ReadUInt32("HonorPoints");

                    DateTime dailyupdate = sql.ReadDateTime("TodayUpdate");

                    if (DateTime.Now >= dailyupdate.AddHours(24))
                    {
                        UpdateArenaInfo(arena.DatabaseID, "TodayUpdate", DateTime.Now);
                        arena.ArenaLossToday = 0;
                        arena.ArenaWinsToday = 0;
                        arena.Save();
                    }
                    if (!Data.ArenaQualifier.AddArenaInfo(arena))
                    {
                        return false;
                    }
                }
            }
            Data.ArenaQualifier.GetTop10();
            Data.ArenaQualifier.GetTop10();
            return true;
        }