Ejemplo n.º 1
0
        public static string isLoginValid(string user, string pass)
        {
            Account Account = new Account();
            Account = DbQuerys.GetAccountData(user, pass);

            if (Account == null)
            {
                return OpCode.LoginPacket_Auth_INVALID_PASSWORD.GetHashCode().ToString();
            }
            else
            {
                Logger.WriteLine(LogState.Debug, "Checking Account: " + Account.Username);
                //BANN CHECK
                if (Account.IsBanned)
                {
                    Logger.WriteLine(LogState.Debug, "Account.IsBanned: " + Account.Username);
                    Logger.WriteLine(LogState.Debug, "Account.UnBanDate: " + Account.UnBanDate);

                    Int64 timeStampNowValue = Convert.ToInt64(DateTime.Now.Ticks);
                    Int64 timeStampUnbannValue = Account.UnBanDate;
                    Logger.WriteLine(LogState.Debug, "timeStampNowValue: '" + timeStampNowValue + "' !");
                    Logger.WriteLine(LogState.Debug, "timeStampUnbannValue: '" + timeStampUnbannValue + "' !");

                    //Unban Account if Time Ok!
                    if (timeStampUnbannValue <= timeStampNowValue)
                    {
                        DbQuerys.SetBanStatus(user, false, 0);
                        return OpCode.LoginPacket_Auth_UNBANNED.GetHashCode().ToString();
                    }

                    //BANNED
                    Account = null;
                    return OpCode.LoginPacket_Auth_BANNED.GetHashCode().ToString();
                }

                if (Account.IsOnline)
                {
                    Logger.WriteLine(LogState.Info, "Account: " + Account.Username + " already logged in!");
                    //DbQuerys.SetIsOnline(user, false); //this for later setting offline kicking other player maybe... for now no 2nd login possible!
                    Account = null;
                    return OpCode.LoginPacket_Auth_ONLINE.GetHashCode().ToString();
                }

                //AuthorizationSuccessfull
                Logger.WriteLine(LogState.Info, "Account Verification for, " + Account.Username + " Ok!");
                DbQuerys.SetLastOnlineUtc(Account.Username);
                return OpCode.LoginPacket_Auth_OK.GetHashCode().ToString();
            }
        }
Ejemplo n.º 2
0
        //Read AccountData for Username&Pass, return as Account()
        public static Account GetAccountData(string Username, string Password)
        {
            DataTable Data = new DataTable();
            Account Account = new Account();

            using (IQueryAdapter dbClient = LoginServer.dbManager.getQueryreactor())
            {
                string GetAccountQuery = "SELECT * FROM accounts WHERE Username='******' AND Password='******';";
                dbClient.setQuery(GetAccountQuery);
                Data = dbClient.getTable();

                if (Data != null)
                {
                    foreach (DataRow Row in Data.Rows)
                    {
                        Account = new Account()
                        {
                            AccountId = uint.Parse(Row["id"].ToString()),
                            Username = Row["username"].ToString(),
                            Password = Row["password"].ToString(),
                            Email = Row["email"].ToString(),
                            AccessLevel = uint.Parse(Row["accesslevel"].ToString()),
                            Membership = Row["membership"].ToString(),
                            IsGM = Convert.ToBoolean(int.Parse(Row["isgm"].ToString())),
                            LastOnlineUtc = Convert.ToInt64((long.Parse(Row["lastonlineutc"].ToString()))),
                            Coins = Convert.ToUInt32((Row["coins"].ToString())),
                            Ip = Row["ip"].ToString(),
                            Settings = Row["settings"].ToString(),
                            IsOnline = Convert.ToBoolean(int.Parse(Row["isonline"].ToString())),
                            IsBanned = Convert.ToBoolean(int.Parse(Row["isbanned"].ToString())),
                            UnBanDate = Convert.ToInt64((long.Parse(Row["unbandate"].ToString()))),
                            RegisterDate = Convert.ToInt64((long.Parse(Row["registerdate"].ToString()))),
                        };

                        return Account;
                    }
                }
            }
            Logger.WriteLine(LogState.Error, "Get Account Data failed, wrong pass?");
            Account = null;
            return Account;
        }
Ejemplo n.º 3
0
        public static int GetCurrentAccountCount()
        {
            DataTable Data = new DataTable();
            Account Account = new Account();

            using (IQueryAdapter dbClient = LoginServer.dbManager.getQueryreactor())
            {
                string GetAccountQuery = "SELECT * FROM accounts";
                dbClient.setQuery(GetAccountQuery);
                Data = dbClient.getTable();

                if (Data != null)
                {
                    foreach (DataRow Row in Data.Rows)
                    {
                        Account = new Account()
                        {
                            AccountId = uint.Parse(Row["Id"].ToString()),
                            Username = Row["Username"].ToString(),
                            Password = Row["Password"].ToString(),
                            Email = Row["Email"].ToString(),
                            AccessLevel = uint.Parse(Row["AccessLevel"].ToString()),
                            Membership = Row["Membership"].ToString(),
                            IsGM = bool.Parse(Row["IsGM"].ToString()),
                            LastOnlineUtc = Convert.ToInt64((long.Parse(Row["LastOnlineUtc"].ToString()))),
                            Coins = Convert.ToUInt32((Row["Coins"].ToString())),
                            Ip = Row["Ip"].ToString(),
                            Settings = Row["Settings"].ToString(),
                            IsOnline = bool.Parse(Row["IsOnline"].ToString()),
                            IsBanned = bool.Parse(Row["IsBanned"].ToString()),
                            UnBanDate = Convert.ToInt64((long.Parse(Row["UnBanDate"].ToString()))),
                        };
                    }

                    return (int)Data.Rows.Count;
                }
            }
            Logger.WriteLine(LogState.Info, "No Users found, All Accounts free?");
            return 0;
        }
        public Account loadAccount(string accountName)
        {
            MySqlConnection SQLconnection = new MySqlConnection(MyConString);
            Account account = null;
            try
            {
                MySqlCommand cmd = SQLconnection.CreateCommand();
                SQLconnection.Open();
                cmd.CommandText = "SELECT Id,Username,Email,Password,AccessLevel,Membership,isGM,LastOnlineUtc,Coins,Ip,UiSettings FROM accounts WHERE Username='******'";
                cmd.CommandType = CommandType.Text;
                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    account = new Account(accountName);
                    account.Id = reader.GetInt32("Id");
                    account.Username = reader.GetString("Username");
                    account.Email = reader.GetString("Email");
                    account.Password = reader.GetString("Password");
                    account.AccessLevel = reader.GetInt32("AccessLevel");
                    account.Membership = reader.GetString("Membership");
                    account.isGM = Convert.ToBoolean(reader.GetInt32("isGM"));
                    account.LastOnlineUtc = reader.GetInt32("LastOnlineUtc");
                    account.Coins = reader.GetInt32("Coins");
                    account.Ip = reader.GetString("Ip");
                    account.UiSettings = reader.GetString("UiSettings");
                }
                reader.Close();
                SQLconnection.Close();
            }
            catch (Exception)// ex)
            {
                SQLconnection.Close();
                //MessageBox.Show(ex.ToString());
                return null;
            }

            SQLconnection.Close();
            return account;
        }
Ejemplo n.º 5
0
        //Check if Username Exists
        public static bool UserExists(string Username)
        {
            DataTable Data = new DataTable();
            Account Account = new Account();

            using (IQueryAdapter dbClient = LoginServer.dbManager.getQueryreactor())
            {
                string GetAccountQuery = "SELECT * FROM accounts WHERE Username='******' LIMIT 1;";
                dbClient.setQuery(GetAccountQuery);
                Data = dbClient.getTable();

                if (Data != null)
                {
                    foreach (DataRow Row in Data.Rows)
                    {
                        Account = new Account()
                        {
                            AccountId = uint.Parse(Row["id"].ToString()),
                            Username = Row["username"].ToString(),
                            Password = Row["password"].ToString(),
                            Email = Row["email"].ToString(),
                            AccessLevel = uint.Parse(Row["accesslevel"].ToString()),
                            Membership = Row["membership"].ToString(),
                            IsGM = Convert.ToBoolean(int.Parse(Row["isgm"].ToString())),
                            LastOnlineUtc = Convert.ToInt64((long.Parse(Row["lastonlineutc"].ToString()))),
                            Coins = Convert.ToUInt32((Row["coins"].ToString())),
                            Ip = Row["ip"].ToString(),
                            Settings = Row["settings"].ToString(),
                            IsOnline = Convert.ToBoolean(int.Parse(Row["isonline"].ToString())),
                            IsBanned = Convert.ToBoolean(int.Parse(Row["isbanned"].ToString())),
                            UnBanDate = Convert.ToInt64((long.Parse(Row["unbandate"].ToString()))),
                            RegisterDate = Convert.ToInt64((long.Parse(Row["registerdate"].ToString()))),
                        };

                        if (Account.Username != null || Account.Username == Username)
                        {
                            Logger.WriteLine(LogState.Debug, "User {0} found!!", Username);
                            return true;
                        }
                    }
                }
            }
            Logger.WriteLine(LogState.Debug, "User {0} not found!", Username);
            return false;
        }