public async Task GetLastMatch(CommandContext ctx, [Description("nickname")] params string[] nickName) { var lolRequest = new LolRequests(); var nick = String.Join(" ", nickName.ToArray()); var summoner = lolRequest.GetSummoner(nick); var lastMatch = lolRequest.GetLastMatch(summoner.accountId)[0]; var lastMatchByMatchId = lolRequest.GetLolMatchById(lastMatch.gameId.ToString()); var partipicationId = lastMatchByMatchId.participantIdentities.Where(_ => _.player.accountId == summoner.accountId).Select(_ => _.participantId).FirstOrDefault(); var partipication = lastMatchByMatchId.participants.FirstOrDefault(_ => _.participantId == partipicationId); var matchResult = lastMatchByMatchId.teams.Where(_ => _.teamId == partipication.teamId).Select(_ => _.win).FirstOrDefault(); var allKillsInMatch = lastMatchByMatchId.participants.Where(_ => _.teamId == partipication.teamId).Sum(_ => _.stats.kills); var participationKills = Math.Round((double)100 * (partipication.stats.kills + partipication.stats.assists) / allKillsInMatch, 0); var summonerEmbed = new DiscordEmbedBuilder { Color = DiscordColor.Rose, Title = nick, Description = $"PLAYED --->", Timestamp = DateTimeOffset.UtcNow, Thumbnail = new DiscordEmbedBuilder.EmbedThumbnail { Height = 100, Width = 100, Url = GetChampionIconUrl(lastMatch.champion) }, Footer = new DiscordEmbedBuilder.EmbedFooter { IconUrl = GetSummonerIconUrl(summoner.profileIconId), } }; summonerEmbed.AddField($"LANE: {lastMatch.lane}", $"KDA: {partipication.stats.kills}/{partipication.stats.deaths}/{partipication.stats.assists}"); summonerEmbed.AddField($"Result: {matchResult}", $"CS -> {partipication.stats.totalMinionsKilled}"); summonerEmbed.AddField($"K/P -> {participationKills}%", $"Vision Score -> {partipication.stats.visionScore}"); await ctx.Channel.SendMessageAsync(embed : summonerEmbed).ConfigureAwait(false); }
public async Task GetSummoner(CommandContext ctx, [Description("nickname")] params string[] nickName) { var lolRequest = new LolRequests(); var nick = String.Join(" ", nickName.ToArray()); var summoner = lolRequest.GetSummoner(nick); var summonerRankedProfile = lolRequest.GetRankedSummoner(summoner.id); var soloqRankedProfile = summonerRankedProfile.Where(x => x.queueType == "RANKED_SOLO_5x5").SingleOrDefault(); Enum.TryParse(soloqRankedProfile.tier, out eLolRanks tier); Enum.TryParse(soloqRankedProfile.rank, out eLolRome rank); var summonerEmbed = new DiscordEmbedBuilder { Color = DiscordColor.Rose, ImageUrl = _leagueIcon + tier.ToString("d") + "-" + rank.ToString("d") + ".png", Title = nick, Description = $"Lv: {summoner.summonerLevel}", Timestamp = DateTimeOffset.UtcNow, Thumbnail = new DiscordEmbedBuilder.EmbedThumbnail { Height = 100, Width = 100, Url = _summonerIcon + summoner.profileIconId + ".png" }, Footer = new DiscordEmbedBuilder.EmbedFooter { IconUrl = _summonerIcon + summoner.profileIconId + ".png", Text = soloqRankedProfile.hotStreak ? "PepeHappy" : "PepeSad", } }; summonerEmbed.AddField(tier.ToString("g"), $"W: {soloqRankedProfile.wins}", true); summonerEmbed.AddField(rank.ToString("g"), $"L: {soloqRankedProfile.losses}", true); var winratio = Math.Round((double)100 * soloqRankedProfile.wins / (soloqRankedProfile.losses + soloqRankedProfile.wins), 2); summonerEmbed.AddField($"WinRatio", $" {winratio.ToString()}%", true); await ctx.Channel.SendMessageAsync(embed : summonerEmbed).ConfigureAwait(false); }