Esempio n. 1
0
        private async void usernameComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (usernameComboBox.SelectedIndex == -1)
            {
                return;
            }

            if (accounts == null)
            {
                return;
            }

            Account selectedAccount = accounts.SingleOrDefault(p => p.Username == usernameComboBox.Items[usernameComboBox.SelectedIndex].ToString());

            if (selectedAccount == null)
            {
                return;
            }

            GMLevel level = await TCManager.Instance.AuthDatabase.GetAccountAccess(selectedAccount.Id);

            accLevelComboBox.SelectedIndex = ((int)level) - 1;
            accAddonComboBox.SelectedIndex = (int)selectedAccount.Exp;

            switchButton.Value = selectedAccount.Locked == 1;
        }
        private async void CreateAccount()
        {
            if (string.IsNullOrEmpty(AccountName) || string.IsNullOrEmpty(AccountPassword) || string.IsNullOrEmpty(Rank) || string.IsNullOrEmpty(Expansion))
            {
                _messageService.ShowError("All fields are required!");

                return;
            }


            if (AccountName.Length > 32)
            {
                _messageService.ShowError("Account name length exceeded!");

                return;
            }

            if (AccountEmail == null)
            {
                AccountEmail = String.Empty;
            }

            _pleaseWaitService.Show("Creating Account...");

            GMLevel level = GMLevel.Player;

            if (Rank == "GM")
            {
                level = GMLevel.GM;
            }
            else if (Rank == "Mod")
            {
                level = GMLevel.Moderator;
            }
            else if (Rank == "Head GM")
            {
                level = GMLevel.HeadGM;
            }
            else if (Rank == "Admin")
            {
                level = GMLevel.Admin;
            }

            Expansion exp = Database.Enums.Expansion.Vanilla;

            if (Expansion == "TBC")
            {
                exp = Database.Enums.Expansion.TBC;
            }
            else if (Expansion == "WOTLK")
            {
                exp = Database.Enums.Expansion.WOTLK;
            }

            await TCManager.Instance.AuthDatabase.CreateAccount(AccountName, AccountPassword, (int)level, (int)exp, AccountEmail);

            _pleaseWaitService.Hide();

            SaveAndCloseViewModel();
        }
        public static async Task SetGMLevel(string username, GMLevel gmlevel, int realmid)
        {

            if (_tcm.Online)
                await GetClient().SendMessage(TCCommand.SetGMLevel.BuildCommand(username, ((int)gmlevel).ToString(), realmid.ToString()));
            else
                await _tcm.AuthDatabase.SetGMLevel(username, gmlevel, realmid);

        }
        /// <summary>
        /// Modify an account
        /// </summary>
        /// <param name="id">The id of the account</param>
        /// <param name="username">The new username for the account</param>
        /// <param name="password">The new password for the account</param>
        /// <param name="email">The new email for the account</param>
        /// <param name="lvl">The new GM level for the account</param>
        /// <param name="exp">The new expansion for the account</param>
        /// <returns>An awaitable Task object</returns>
        public async Task EditAccount(int id, string username, string password, string email, GMLevel lvl, Expansion exp)
        {

            await ExecuteNonQuery("UPDATE `account` SET username=@username, sha_pass_hash=@hash, expansion=@expansion, email=@email WHERE id=@id",
                new MySqlParameter("@username", username), new MySqlParameter("@hash", String.Format("{0}:{1}", username.ToUpper(), password.ToUpper()).ToSHA1()),
                new MySqlParameter("@expansion", (int)exp), new MySqlParameter("@email", email), new MySqlParameter("@id", id));

            await ExecuteNonQuery("UPDATE `account_access` SET gmlevel=@gmlevel WHERE id = @id", new MySqlParameter("@gmlevel", (int)lvl), new MySqlParameter("@id", id));

        }
Esempio n. 5
0
 public static async Task SetGMLevel(string username, GMLevel gmlevel, int realmid)
 {
     if (_tcm.Online)
     {
         await GetClient().SendMessage(TCCommand.SetGMLevel.BuildCommand(username, ((int)gmlevel).ToString(), realmid.ToString()));
     }
     else
     {
         await _tcm.AuthDatabase.SetGMLevel(username, gmlevel, realmid);
     }
 }
        public async Task SetGMLevel(string username, GMLevel level, int realmid)
        {
            Account account = await GetAccount(username);

            if (account == null)
            {
                return;
            }

            await SetGMLevel(account.Id, level, realmid);
        }
        private async void PlayerInformation_Load(object sender, EventArgs e)
        {
            StartLoading();

            int guid = await TCManager.Instance.CharDatabase.GetCharacterGuid(_charName);

            TCCharacter character = await TCManager.Instance.CharDatabase.GetCharacter(guid);

            if (character == null)
            {
                MessageBoxEx.Show(this, "Character does not exist!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                StopLoading();

                this.Close();

                return;
            }

            int accountId = character.Account;

            Account account = await TCManager.Instance.AuthDatabase.GetAccount(accountId);

            if (account == null)
            {
                MessageBoxEx.Show(this, "Account does not exist!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                StopLoading();

                this.Close();

                return;
            }

            nameLabel.Text      = character.Name;
            lastLoginLabel.Text = account.LastLogin.ToString();
            lastIpLabel.Text    = account.LastIp;
            emailLabel.Text     = account.Email;
            raceLabel.Text      = character.Race.GetCharacterRaceName();
            classLabel.Text     = character.Class.GetCharacterClassName();

            int gold   = character.Money / 10000;
            int silver = (character.Money % 10000) / 100;
            int copper = (character.Money % 10000) % 100;

            Console.WriteLine(character.Money);

            moneyLabel.Text      = String.Format("{0} Gold {1} Silver {2} Copper", gold, silver, copper);
            totalKillsLabel.Text = character.TotalKills.ToString();
            accountLabel.Text    = account.Username;
            accountIdLabel.Text  = account.Id.ToString();


            GMLevel level = await TCManager.Instance.AuthDatabase.GetAccountAccess(account.Id);

            switch (level)
            {
            case GMLevel.Player:

                gmLevelLabel.Text = "Player";

                break;

            case GMLevel.Moderator:

                gmLevelLabel.Text = "Moderator";

                break;

            case GMLevel.GM:

                gmLevelLabel.Text = "Game Master";

                break;

            case GMLevel.HeadGM:

                gmLevelLabel.Text = "Head Game Master";

                break;

            case GMLevel.Admin:

                gmLevelLabel.Text = "Administrator";

                break;
            }

            TimeSpan timePlayed = TimeSpan.FromSeconds(character.TotalTime);

            playedTimeLabel.Text  = timePlayed.ToReadableString();
            levelLabel.Text       = character.Level.ToString();
            arenaPointsLabel.Text = character.ArenaPoints.ToString();
            honorPointsLabel.Text = character.TotalHonorsPoints.ToString();

            StopLoading();
        }
        public async Task SetGMLevel(string username, GMLevel level, int realmid)
        {

            Account account = await GetAccount(username);

            if (account == null)
                return;

            await SetGMLevel(account.Id, level, realmid);

        }
 public async Task SetGMLevel(int accountId, GMLevel level, int realmid)
 {
     await ExecuteNonQuery("UPDATE `account_access` SET gmlevel = @gmlevel, RealmID = @realmid WHERE `id` = @id;", new MySqlParameter("@gmlevel", (int)level), new MySqlParameter("@realmid", realmid), new MySqlParameter("@id", accountId));
 }
 public async Task SetGMLevel(int accountId, GMLevel level, int realmid)
 {
     await ExecuteNonQuery("UPDATE `account_access` SET gmlevel = @gmlevel, RealmID = @realmid WHERE `id` = @id;", new MySqlParameter("@gmlevel", (int)level), new MySqlParameter("@realmid", realmid), new MySqlParameter("@id", accountId));
 }
Esempio n. 11
0
        private async void ShowPlayerInfo()
        {
            if (string.IsNullOrEmpty(SelectedCharacter))
            {
                _messageService.ShowError("No character selected!");

                return;
            }

            TCCharacter c = await TCManager.Instance.CharDatabase.GetCharacter(SelectedCharacter);

            if (c != null)
            {
                Account acct = await TCManager.Instance.AuthDatabase.GetAccount(c.Account);

                if (acct != null)
                {
                    GMLevel gmLvl = await TCManager.Instance.AuthDatabase.GetAccountAccess(c.Account);

                    string gmLevelStr;

                    switch (gmLvl)
                    {
                    case GMLevel.Moderator:

                        gmLevelStr = "Moderator";

                        break;

                    case GMLevel.GM:

                        gmLevelStr = "GM";

                        break;

                    case GMLevel.HeadGM:

                        gmLevelStr = "Head GM";

                        break;

                    case GMLevel.Admin:

                        gmLevelStr = "Admin";

                        break;

                    default:

                        gmLevelStr = "Player";

                        break;
                    }

                    int gold   = c.Money / 10000;
                    int silver = (c.Money % 10000) / 100;
                    int copper = (c.Money % 10000) % 100;

                    string money = String.Format("{0} Gold {1} Silver {2} Copper", gold, silver, copper);

                    PlayerInformationModel model = new PlayerInformationModel
                    {
                        CharacterName = c.Name,
                        AccountId     = c.Account.ToString(),
                        AccountName   = acct.Username,
                        Class         = c.Class.GetCharacterClassName(),
                        Email         = acct.Email,
                        GMLevel       = gmLevelStr,
                        LastIp        = acct.LastIp,
                        LastLogin     = acct.LastLogin.ToString(),
                        Level         = c.Level.ToString(),
                        Money         = money,
                        PlayedTime    = TimeSpan.FromSeconds(c.TotalTime).ToReadableString(),
                        Race          = c.Race.GetCharacterRaceName(),
                        TotalKills    = c.TotalKills.ToString(),
                    };

                    _uiVisualizerService.ShowDialog(new PlayerInformationViewModel(model));
                }
            }
        }
        /// <summary>
        /// Modify an account
        /// </summary>
        /// <param name="id">The id of the account</param>
        /// <param name="username">The new username for the account</param>
        /// <param name="password">The new password for the account</param>
        /// <param name="email">The new email for the account</param>
        /// <param name="lvl">The new GM level for the account</param>
        /// <param name="exp">The new expansion for the account</param>
        /// <returns>An awaitable Task object</returns>
        public async Task EditAccount(int id, string username, string password, string email, GMLevel lvl, Expansion exp)
        {
            await ExecuteNonQuery("UPDATE `account` SET username=@username, sha_pass_hash=@hash, expansion=@expansion, email=@email WHERE id=@id",
                                  new MySqlParameter("@username", username), new MySqlParameter("@hash", String.Format("{0}:{1}", username.ToUpper(), password.ToUpper()).ToSHA1()),
                                  new MySqlParameter("@expansion", (int)exp), new MySqlParameter("@email", email), new MySqlParameter("@id", id));

            await ExecuteNonQuery("UPDATE `account_access` SET gmlevel=@gmlevel WHERE id = @id", new MySqlParameter("@gmlevel", (int)lvl), new MySqlParameter("@id", id));
        }