public async Task CommandMastery(string region, string summonerName) { Enum.TryParse(typeof(Region), region, true, out var regionEnum); if (regionEnum == null) { throw new Exception("Region could not be parsed"); } var latestDataDragonVersion = await DataDragon.GetLatestVersion(); var summoner = await _api.Summoner.GetSummonerByNameAsync((Region)regionEnum, summonerName); var top5Mastery = await Summoner.GetMasteries((Region)regionEnum, summoner); if (!top5Mastery.Any()) { await ReplyAsync("No mastery details could be found."); return; } var champions = await Champion.GetAllChampions(latestDataDragonVersion); var embed = new EmbedBuilder() .WithTitle("Top 5 Champion Mastery's"); var topChampionImage = champions.FirstOrDefault(x => x.Id == top5Mastery.FirstOrDefault()?.ChampionId)?.Image; if (topChampionImage != null) { var topChampionDataDragonImageUrl = Champion.GetImageUrl(latestDataDragonVersion, topChampionImage.Full); embed = embed.WithThumbnailUrl(topChampionDataDragonImageUrl); } foreach (var championMastery in top5Mastery) { var champion = champions.FirstOrDefault(x => x.Id == championMastery.ChampionId); if (champion == null) { break; } embed = embed.AddField(champion.Name, $"{championMastery.ChampionPoints:n0} Points"); } await ReplyAsync("", false, embed.Build()); }