Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }