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)); }
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)); }
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)); } } }