public Overwatch(OverwatchClient client, string api_url, string region, string platform, string user_agent) { Client = client; API_Url = api_url; Region = region; Platform = platform; User_Agent = user_agent; }
public async void GetPlayer_Username_Only_Overload_With_Battletag_Argument_Returns_Valid_Page() { using (var owClient = new OverwatchClient()) { var result = await owClient.GetPlayerAsync("moiph#1288"); Assert.Equal("https://playoverwatch.com/en-gb/career/pc/moiph-1288", result.ProfileUrl); } }
public async void GetPlayer_Username_Only_Overload_With_Battletag_Argument_And_Config_With_No_Pc_Region_Should_Throw_Exception() { var config = new OverwatchConfig.Builder() .WithPlatforms(Platform.Psn, Platform.Xbl); var mockWebClient = new MockProfileClient(config); using (var owClient = new OverwatchClient(mockWebClient, config)) { await Assert.ThrowsAsync <ArgumentException>(async() => await owClient.GetPlayerAsync("SirDoombox#2603")); } }
public async void GetPlayer_Username_Only_Overload_With_Battletag_Argument_Returns_Valid_Page() { var config = new OverwatchConfig.Builder().Default(); var mockWebClient = new MockProfileClient(config); using (var owClient = new OverwatchClient(mockWebClient, config)) { var result = await owClient.GetPlayerAsync("SirDoombox#2603"); Assert.Equal("https://playoverwatch.com/en-gb/career/pc/eu/SirDoombox-2603", result.ProfileUrl); } }
public async Task Overwatch(CommandContext ctx, string battletag, [RemainingText] string query) { if (string.IsNullOrWhiteSpace(battletag)) { await BotServices.SendErrorEmbedAsync(ctx, ":warning: Battletag is required! Try **.ow CriticalFlaw#11354** (case-sensitive)"); } else { var overwatch = new OverwatchClient(); var player = await overwatch.GetPlayerAsync(battletag); if (player == null) { await BotServices.SendErrorEmbedAsync(ctx, ":mag: Player not found! Remember, battletags are case-sensitive."); } else { await ctx.TriggerTypingAsync(); var output = new DiscordEmbedBuilder() .WithTitle(player.Username) .AddField("Level", player.PlayerLevel.ToString(), true) .AddField("Competitive", player.CompetitiveRank.ToString(), true) .AddField("Platform", player.Platform.ToString().ToUpper(), true) .AddField("Achievements", player.Achievements.Count.ToString(), true) .WithThumbnailUrl(player.ProfilePortraitUrl) .WithUrl(player.ProfileUrl) .WithColor(DiscordColor.Gold); // Add Casual or Competitive stats if a query is present switch (query.ToUpperInvariant()) { case "CASUAL": output.AddField("Healing Done", player.CasualStats.GetStatExact("All Heroes", "Assists", "Healing Done").Value.ToString(), true); output.WithFooter("Casual stats shown are for All Heroes"); break; case "COMP": case "COMPETITIVE": output.AddField("Healing Done", player.CompetitiveStats.GetStatExact("All Heroes", "Assists", "Healing Done").Value.ToString(), true); output.WithFooter("Competitive stats shown are for All Heroes"); break; default: // Do nothing... break; } await ctx.RespondAsync(embed : output.Build()); } } }
public async Task OverwatchPlayer(string gamer) { var config = GuildConfig.GetOrCreateConfig(Context.Guild.Id); var owClient = new OverwatchClient(); Player player = await owClient.GetPlayerAsync(gamer); var embed = new EmbedBuilder(); embed.WithTitle($"{gamer}'s Overwatch \"stats\"!"); embed.AddField("Level", player.PlayerLevel); embed.AddField("Platform", player.Platform); embed.AddField("Profile URL", player.ProfileUrl); embed.AddField("Achievements", player.Achievements.Count); embed.WithThumbnailUrl(player.CompetitiveRankImageUrl); embed.WithFooter(Bot.Utilities.GetFormattedLocaleMsg("CommandFooter", Context.User.Username)); embed.WithColor(new Color(config.EmbedColour1, config.EmbedColour2, config.EmbedColour3)); await ReplyAsync("", false, embed); }
private async void Login_Click(object sender, RoutedEventArgs e) // this code is kinda spaghetti but it handles the login pretty well so imma leave it { var btn = sender as Button; if (Scorecard.UserLoggedIn) { Scorecard.Player = null; Scorecard.UserLoggedIn = false; InfoBox_Modify("Logged Out"); btn.Content = "Login"; return; } try { OverwatchClient owClient = new OverwatchClient(); InfoBox_Modify("Logging in..."); Scorecard.Player = await owClient.GetPlayerAsync(Settings.Default.BattleTag, Platform.Pc); } catch (Exception ex) { InfoBox_Modify("Error: " + ex.Message, Brushes.Red); return; } if (Scorecard.Player.IsProfilePrivate) { InfoBox_Modify("Error: Private Profile", Brushes.Red); } else { InfoBox_Modify("Login Successful", Brushes.Green); Scorecard.CurrentSR = Scorecard.Player.CompetitiveRank; Scorecard.UserLoggedIn = true; btn.Content = "Logout"; } }