public async Task Mastery(string region, string summonerName, string championName) { RiotData data = new RiotData(); RiotClient riotClient = new RiotClient(OptionManager.RiotKey); DataLibrary.Champion champion = null; Discord.EmbedBuilder builder = null; var championList = data.Champions.Where(x => x.name.ToLower().Equals(championName.ToLower())).ToList(); if (championList.Count < 1) { championList = new RiotData().Champions.Where(x => x.name.ToLower().Contains(championName.ToLower())) .ToList(); } champion = championList[0]; if (champion != null) { var summoner = riotClient.Summoner.GetSummonerByName(summonerName, PlatformHelper.StringToPlatform(region)); var masteries = riotClient.Masteries.GetchampionMasteries(PlatformHelper.StringToPlatform(region), summoner.SummonerId); var championMastery = masteries.FirstOrDefault(x => x.ChampionId == champion.ChampionId); builder = Builders.BaseBuilder($"{summoner.Name} mastery for {champion.name}", "", Color.DarkBlue, null, $"http://ddragon.leagueoflegends.com/cdn/6.24.1/img/champion/{champion.key}.png"); builder.AddInlineField("Level", championMastery.Level); builder.AddInlineField("Points", championMastery.ChampionPoints); } else { builder = Builders.ErrorBuilder("Champion was not found"); } await ReplyAsync("", embed : builder.Build()); }
public async Task Github(string branch = "") { var embed = new Discord.EmbedBuilder(); string Branch = branch.ToLower(); //embed.WithTitle("Github"); if (Branch == "master") { embed.AddInlineField("Master", "https://github.com/Gagong/Toshinou-Revamped/tree/master"); } else if (Branch == "beta") { embed.AddInlineField("Beta", "https://github.com/Gagong/Toshinou-Revamped/tree/beta").WithFooter("WARNING: This is not a stable build, recommended to use Master"); } else { embed.AddInlineField("Master (Recommended)", "https://github.com/Gagong/Toshinou-Revamped/tree/master"); embed.AddInlineField("Beta", "https://github.com/Gagong/Toshinou-Revamped/tree/beta"); } embed.Color = Color.Green; embed.WithAuthor("Smart Toshinou | Github", "", ""); // Name, IconURL, URL(???) await ReplyAsync("", false, embed); }
public async Task Search([Remainder] string name) { var root = RequestHandler.GetAmiibo(name); foreach (var amiibo in root.amiibo) { Discord.EmbedBuilder builder = Builders.BaseBuilder("", "", Color.DarkMagenta, new EmbedAuthorBuilder().WithName("AmiiboAPI's Results").WithUrl("http://www.amiiboapi.com"), null); builder.AddInlineField("General Information", "**Name: **" + amiibo.Name + "\n" + "**Amiibo Series: **" + amiibo.Series + "\n" + "**Game Series: **" + amiibo.GameSeries); builder.AddInlineField("Releases", "**NA:** " + Convert.ToDateTime(amiibo.Releases.na).ToLongDateString() + "\n" + "**EU: **" + Convert.ToDateTime(amiibo.Releases.eu).ToLongDateString() + "\n" + "**JP: **" + Convert.ToDateTime(amiibo.Releases.jp).ToLongDateString() + "\n" + "**AU: **" + Convert.ToDateTime(amiibo.Releases.au).ToLongDateString()); try { builder.WithImageUrl(amiibo.ImageURL); } catch { } await ReplyAsync("", embed : builder.Build()); } }
public async Task info(SocketUser user = null) { if (user == null) { user = Context.Message.Author; } dbase.chkserver(Context.Guild); string query = "SELECT * FROM uzytkownicy as u INNER JOIN `servery` as s ON u.Server = s.id WHERE u.user='******' AND s.nid='" + Context.Guild.Id.ToString() + "'"; MySqlCommand cmd = new MySqlCommand(query, dbase.connect); if (!dbase.HasRows(cmd)) { query = "INSERT INTO `uzytkownicy`(`id`, `user`, `score`, `ranks`, `level`, `link`, `server`) VALUES (null,'" + user.Id.ToString() + "',0 ,null ,1 ,null, '" + dbase.Chkserver(Context.Guild.Id.ToString()) + "')"; cmd = new MySqlCommand(query, dbase.connect); dbase.make(cmd); query = "SELECT * FROM `uzytkownicy` as u INNER JOIN `servery` as s ON u.Server = s.id WHERE u.user='******' AND s.nid='" + Context.Guild.Id.ToString() + "'"; cmd = new MySqlCommand(query, dbase.connect); } DataTable info = dbase.Read(cmd); var builder = new Discord.EmbedBuilder(); builder.WithTitle("Informacje o uzytkowniku " + user.Username); builder.WithThumbnailUrl(user.GetAvatarUrl()); builder.AddField("Ilość punktów:", info.Rows[0][2]); builder.AddInlineField("Poziom:", info.Rows[0][4]); if (info.Rows[0][5] != null && info.Rows[0][5].ToString() != "") { builder.AddInlineField("Deviantart:", info.Rows[0][5].ToString()); } builder.WithColor(Color.DarkGreen); await Context.Channel.SendMessageAsync("", false, builder); }
public async Task help() { var builder = new Discord.EmbedBuilder(); builder.WithTitle("Komendy"); builder.AddInlineField("Memy", "`.dmem <nazwa> <link>` - Dodaje mema na serwer,\n\u200b`.dmemnsfw <nazwa> <link>` - Dodaje mema na serwer **tylko nsfw**,\n\u200b`.umem <nazwa>` - Usuwa mem z serwera,\n\u200b`.memelist` - Pokazuje listę memów"); builder.AddInlineField("Warny", "`.warn <osoba> <powód>` - Daje warna osobie,\n\u200b`.delwarn <osoba> <numer warna>` - Usuwa wybrany warn,\n\u200b`.clearwarns <osoba>` - Czysci wszystkie warny osoby,\n\u200b`.listwarns <[opcjonalnie]osoba>` - pokazuje twoje/czyjes warny."); builder.AddInlineField("Rangi", "`.drank <nazwa>` - range o podanej nazwie.,\n\u200b`.urank <nazwa>` - usuwa range podanej nazwie,\n\u200b`.ranga <nazwa>` - nadaje range o podanej nazwie,\n\u200b`.rangi` - pokazuje spis rang dostępnych na serwerze"); builder.AddInlineField("Fun", "`.patyk <osoba>` - narzędzie wzajemnej motywacji,\n\u200b`.rate <link/zlacznik>` - postuje obrazek na wyznaczonym kanale do oceny przez innych uzytkownikow,\n\u200b`.info <[opcjonalnie]osoba>` - podaje informacje z twojego profilu\n\u200b`.da <link>` - zapisuje link do twojego Deviantartu\n\u200b`.pokazda <[opcjonalnie]osoba>` - podaje link do twojego lub czyjegoś Deviantartu."); builder.AddInlineField("Powitania", "`.welmsg <wiadomosc>` - wiadomosc powitalna,\n\u200b`.welchan <kanal>` - kanal na którym wysyłana będzie wiadomość."); builder.WithColor(Color.DarkGreen); await Context.Channel.SendMessageAsync("", false, builder); }
public async Task rate(string link = null) { DateTime czas = time.AddSeconds(10); if (link == null) { link = Context.Message.Attachments.FirstOrDefault().Url; } var builder = new Discord.EmbedBuilder(); builder.WithTitle("Ocena"); builder.AddInlineField("Autor: " + Context.Message.Author.Username, "Obrazek:"); builder.WithImageUrl(link); builder.WithColor(Color.DarkGreen); dbase.chkserver(Context.Guild); string query = "SELECT * FROM `servery` WHERE `nid`='" + Context.Guild.Id.ToString() + "'"; MySqlCommand cmd = new MySqlCommand(query, dbase.connect); var msg = await((ISocketMessageChannel)Context.Guild.GetChannel(ulong.Parse(dbase.Read(cmd).Rows[0][3].ToString()))).SendMessageAsync("", false, builder); await msg.AddReactionAsync(Context.Guild.Emotes.First(e => e.Name == "redbean")); string format = "yyyy-MM-dd HH:mm:ss"; query = "INSERT INTO `timery` (`id`, `user`, `type`, `time`, `text`, `Server`) VALUES (NULL, '" + Context.Message.Author.Id + "', 'rate', '" + czas.ToString(format) + "', '" + msg.Id + "', '" + dbase.Chkserver(Context.Guild.Id.ToString()) + "')"; cmd = new MySqlCommand(query, dbase.connect); dbase.timer(cmd, "rate", czas, (IGuildUser)Context.Message.Author, Context.Guild.Id.ToString(), msg.Id.ToString()); Console.WriteLine(time + "\tRozpoczeto glosowanie obrazka uzytkownika " + Context.Message.Author.Username + "."); }
public async Task Encode([Remainder] string data) { StringBuilder sb = new StringBuilder(); foreach (char c in data.ToCharArray()) { sb.Append(Convert.ToString(c, 2).PadLeft(8, '0')); } string endres = sb.ToString(); var b = new Discord.EmbedBuilder(); b.AddInlineField("The Text Given To Me", data); b.AddInlineField("The Binary Code", endres); await ReplyAsync("", false, b); }
public async Task Decode(string data) { List <Byte> byteList = new List <Byte>(); for (int i = 0; i < data.Length; i += 8) { byteList.Add(Convert.ToByte(data.Substring(i, 8), 2)); } string endres = Encoding.ASCII.GetString(byteList.ToArray()); var b = new Discord.EmbedBuilder(); b.AddInlineField("The Binary Code Given To Me", data); b.AddInlineField("The Text", endres); await ReplyAsync("", false, b); }
public async Task UserInfo(SocketGuildUser user) { var perms = user.GuildPermissions.ToList(); var allPerms = string.Join(", ", perms); if (user != null) { var answer = new Discord.EmbedBuilder(); answer.WithColor(40, 200, 150); answer.ThumbnailUrl = user.GetAvatarUrl(ImageFormat.Auto); answer.AddField("User Info for " + user, "UserID | " + user.Id); //answer.AddInlineField("User Nickname" + "", user.Nickname); answer.AddInlineField("Server Permissions ", allPerms); answer.AddInlineField("Joined Server at", user.JoinedAt); answer.AddInlineField("Joined Discord at ", user.CreatedAt.DateTime.ToLongDateString()); answer.AddInlineField("User Status ", user.Status); await Context.Channel.SendMessageAsync("", false, answer.Build()); } }
public async Task GetCharacter([Remainder][Summary("The name of the chracter")] string name) { var character = RequestHandler.GetCharacterName(name); if (character == null) { await ReplyAsync("", embed : Builders.ErrorBuilder("Character not found")); } var moves = RequestHandler.GetMoves(name); Discord.EmbedBuilder builder = Builders.BaseBuilder("", "", Color.DarkTeal, new EmbedAuthorBuilder().WithName("KuroganeHammer Result:").WithUrl("http://kuroganehammer.com"), character.ThumbnailURL); //builder.WithImageUrl(character.MainImageURL); builder.WithUrl(character.FullURL); string info = ""; info += "**Name: **" + character.Name; if (!string.IsNullOrEmpty(character.Description)) { info += "**Description: **" + character.Description; } if (!string.IsNullOrEmpty(character.Style)) { info += "**Style: **" + character.Style; } builder.AddField(new EmbedFieldBuilder().WithName("Information").WithValue(info)); var movement = RequestHandler.GetMovement(name); var half = movement.Attributes.Count / 2; var info1 = ""; var info2 = ""; for (int i = 0; i < movement.Attributes.Count / 2; i++) { info1 += $"**{movement.Attributes[i].Name}**: {movement.Attributes[i].Value}\n"; info2 += $"**{movement.Attributes[i + half].Name}**: {movement.Attributes[i + half].Value}\n"; } builder.AddInlineField("Movement", info1); builder.AddInlineField("Movement", info2); string movesinfo = ""; string specials = ""; int specialcount = 0; string aerials = ""; string smashes = ""; string grabs = ""; string tilts = ""; moves.ForEach(x => { if (x.MoveType == "ground") { if (x.Name.Contains("smash")) { smashes += x.Name + "\n"; } else if (x.Name.Contains("tilt")) { tilts += x.Name + "\n"; } else if (x.Name.ToLower().Contains("grab")) { grabs += x.Name + "\n"; } else { movesinfo += x.Name + "\n"; } } if (x.MoveType == "special") { specials += x.Name + "\n"; specialcount++; } if (x.MoveType == "aerial") { aerials += x.Name + "\n"; } }); builder.AddInlineField("Ground Moves", movesinfo); builder.AddInlineField("Smashes", smashes); builder.AddInlineField("Specials", specials); builder.AddInlineField("Aerials", aerials); builder.AddInlineField("Tilts", tilts); builder.AddInlineField("Grabs", tilts); await ReplyAsync("", embed : builder.Build()); }
public async Task GetMove(string charactername, [Remainder] string moveName) { Discord.EmbedBuilder builder = null; var character = RequestHandler.GetCharacterName(charactername); if (character == null) { await ReplyAsync("", embed : Builders.ErrorBuilder("Character not found")); } var moves = RequestHandler.GetMoves(charactername); Move move = null; move = moves.FirstOrDefault(x => x.Name.ToLower().Equals(moveName.ToLower())); if (move == null) { move = moves.FirstOrDefault(x => x.Name.ToLower().Contains(moveName.ToLower())); } if (move != null) { builder = Builders.BaseBuilder("", "", Color.DarkBlue, new EmbedAuthorBuilder().WithName(character.Name + " | " + move.Name) .WithUrl("http://kuroganehammer.com/smash4/" + move.Owner), character.ThumbnailURL); string statistics = ""; //builder.WithImageUrl("https://zippy.gfycat.com/EuphoricCookedHornshark.webm"); //TODO Add later when gifs are supported but holy shit it works. if (!string.IsNullOrEmpty(move.MoveType)) { statistics += "**Move Type:** " + move.MoveType + "\n"; } if (!string.IsNullOrEmpty(move.BaseDamage)) { statistics += "**Base Damage:** " + move.BaseDamage + "%\n"; } if (!string.IsNullOrEmpty(move.BaseKockbackSetKnockback)) { statistics += "**Base/Set Knockback: **" + move.BaseKockbackSetKnockback + "\n"; } if (!string.IsNullOrEmpty(move.LandingLag)) { statistics += "**Landinglag: **" + move.LandingLag + " frames\n"; } if (!string.IsNullOrEmpty(move.HitboxActive)) { statistics += "**Hitbox Active: **Frames " + move.HitboxActive + "\n"; } if (!string.IsNullOrEmpty(move.KnockbackGrowth)) { statistics += "**Knockback Growth: **" + move.HitboxActive + "\n"; } if (!string.IsNullOrEmpty(move.Angle)) { statistics += "**Angle: **" + move.Angle.Replace("361", "Sakuari Angle/361") + "\n"; } if (!string.IsNullOrEmpty(move.AutoCancel)) { statistics += "**Auto-Cancel: **Frame " + move.AutoCancel.Replace(">", ">") + "\n"; } if (!string.IsNullOrEmpty(move.FirstActionableFrame)) { statistics += "**First Actionable Frame: **" + move.FirstActionableFrame + "\n"; } builder.AddInlineField("Statistics", statistics); if (move.Angle.Equals("361")) { builder.AddInlineField("Sakurai Angle", "\"The Sakurai angle (sometimes displayed as * in moveset lists) is a special knockback behavior that many attacks use. While it reads in the game data as an angle of 361 degrees, the actual resulting angle is dependent on whether the victim is on the ground or in the air, as well as the strength of the knockback.\"\nSource: https://www.ssbwiki.com/Sakurai_angle"); } builder.AddField("Info", "If you don't understand the values please visit http://kuroganehammer.com/Glossary"); await ReplyAsync("", embed : builder.Build()); } else { await ReplyAsync("", embed : Builders.ErrorBuilder("Move was not found")); } }
public async Task Help() { var a = new Discord.EmbedBuilder(); a.AddInlineField("/mchelp", "Gets the list of GameOut Minecraft Server commands.").WithColor(25, 25, 112); a.AddInlineField("/adhelp", "Gets the list of bot owner commands."); a.AddInlineField("/reee", "For when autism strikes."); a.AddInlineField("/insult", "For when you wanna insult someone."); a.AddInlineField("/killme", "For when you wanna die."); a.AddInlineField("/8ball", "For when autism strikes."); a.AddInlineField("/tellajoke", "Tells a joke."); a.AddInlineField("/rate + WhatYouWantRatedHere", "Rates the input."); a.AddInlineField("/stats", "Receives bot stats."); a.AddInlineField("/get time", "Gets the current time."); a.AddInlineField("/get date", "Gets the current date."); IDMChannel gencom = await Context.Message.Author.GetOrCreateDMChannelAsync(); await gencom.SendMessageAsync("", false, a); await gencom.CloseAsync(); }
public async Task GetResult([Remainder] string name) { var message = await ReplyAsync("Gathering Data... This may take a while for bigger tournaments"); var embed = CachedEmbedContainer.GetEmbedByArgs("smashgg result " + name.ToLower()); if (embed != null) { await message.DeleteAsync(); await ReplyAsync("", embed : embed); return; } Discord.EmbedBuilder builder = null; var tournament = RequestHandler.GetTournamentRoot(name); if (tournament.entities == null) { builder = Builders.BaseBuilder("Tournament not found", "", Color.Red, null, ""); await ReplyAsync("", embed : builder.Build()); await message.DeleteAsync(); return; } var bracketPhases = tournament.entities.phase.Where(x => x.groupCount == 1).ToList(); var icon = tournament.entities.tournament.images.FirstOrDefault(x => x.type == "profile"); string url = ""; if (icon != null) { url = icon.url; } builder = Builders.BaseBuilder(tournament.entities.tournament.name, "", Color.DarkOrange, null, url); foreach (var bracketPhase in bracketPhases) { var phaseId = bracketPhase.id; var selectedEvent = tournament.entities.Event.FirstOrDefault(x => x.id == bracketPhase.eventId); var group = tournament.entities.groups.FirstOrDefault(x => x.phaseId == phaseId); var result = RequestHandler.GetResult(group.id); var players = result.Entities.Player; if (players != null && result.Entities.Seeds != null) { var seedlist = result.Entities.Seeds.Where(x => x.Placement != null).ToList(); var seeds = seedlist.OrderBy(x => x.Placement).ToList(); //Results sorted by ranking int playerCount = 10; if (seeds.Count < playerCount) { playerCount = seeds.Count; } string placementInfo = ""; for (int i = 0; i < playerCount; i++) { var player = players.Where(x => Convert.ToInt64(x.EntrantId) == seeds[i].EntrantId).ToList(); if (player.Count == 2) { var player1 = ""; var player2 = ""; if (!string.IsNullOrEmpty(player[0].Prefix)) { player1 = $"**{player[0].Prefix}** {player[0].GamerTag}"; } else { player1 = $"{player[0].GamerTag}"; } if (!string.IsNullOrEmpty(player[1].Prefix)) { player2 = $"**{player[1].Prefix}** {player[1].GamerTag}"; } else { player2 = $"{player[1].GamerTag}"; } placementInfo += $"{seeds[0].Placement}: {player1} | {player2}\n"; } else { var player1 = ""; if (!string.IsNullOrEmpty(player[0].Prefix)) { player1 = $"**{player[0].Prefix}** {player[0].GamerTag}"; } else { player1 = $"{player[0].GamerTag}"; } if (player[0] != null) { placementInfo += $"{seeds[i].Placement}: {player1}\n"; } } } if (!string.IsNullOrEmpty(placementInfo)) { builder.AddInlineField($"{selectedEvent.name} Results", placementInfo); } } } var tournamentDate = new DateTime(1970, 1, 1, 0, 0, 0); tournamentDate = tournamentDate.AddSeconds(tournament.entities.tournament.endAt); TimeSpan duration = DateTime.Now - tournamentDate; if ((duration.Days < 7 || duration.Days < 0) && Context.Guild != null) { var spoiled = Builders.BaseBuilder("Spoiler preventer!", "", Color.Red, null, ""); spoiled.AddField("Spoiler prevented!", "To prevent spoiling tournament results for people, we only allow tournaments older than a week to be shown in servers.\nThe embed has been DMed to you ;)"); await ReplyAsync("", embed : spoiled.Build()); await Context.Message.Author.GetOrCreateDMChannelAsync().Result .SendMessageAsync("", embed: builder.Build()); } else { var embedBuild = builder.Build(); await ReplyAsync("", embed : embedBuild); CachedEmbedContainer.AddEmbed(embedBuild, "smashgg result " + name.ToLower(), TimeSpan.FromDays(1)); } await message.DeleteAsync(); }
public async Task PlayerPerformance(string playerName, [Remainder] string tournamentName) { var message = await ReplyAsync("Getting data..."); var tournament = RequestHandler.GetTournamentRoot(tournamentName); if (tournament.entities == null) { var embed = Builders.BaseBuilder("Tournament not found", "", Color.Red, null, ""); await ReplyAsync("", embed : embed.Build()); } var bracketPhases = tournament.entities.phase.Where(x => x.groupCount == 1).ToList(); Discord.EmbedBuilder builder = Builders.BaseBuilder(playerName + " Results For " + tournament.entities.tournament.name, "", Color.Red, null, ""); bool playerFound = false; double wins = 0; double losses = 0; foreach (var bracketPhase in bracketPhases) { var phaseId = bracketPhase.id; var group = tournament.entities.groups.FirstOrDefault(x => x.phaseId == phaseId); var result = RequestHandler.GetResultSets(group.id); var players = result.Entities.Player; var player = players.Where(x => x.GamerTag.ToLower().Trim().Contains(playerName.ToLower().Trim())) .ToList(); if (player.Count == 1) //player is found, lets go { playerFound = true; builder.WithTitle($"{player[0].GamerTag} Results at {tournament.entities.tournament.name}"); var sets = result.Entities.Sets.Where(x => x.Entrant1Id == Convert.ToInt64(player[0].EntrantId) || x.Entrant2Id == Convert.ToInt64(player[0].EntrantId)).ToList(); string setinfo = ""; sets = sets.OrderBy(x => x.CompletedAt).ToList(); var characters = new List <string>() { "Bowser", "Captain Falcon", "Donkey Kong", "Dr. Mario", "Falco", "Fox", "Ganondorf", "Ice Climbers", "Jigglypuff", "Kirby", "Link", "Luigi", "Mario", "Marth", "Mewtwo", "Mr. Game And Watch", "Ness", "Peach", "Pichu", "Pikachu", "Roy", "Samus", "Sheik", "Yoshi", "Young Link", "Zelda" }; Event prevEvent = null; string eventInfo = ""; foreach (var set in sets) { var setEvent = tournament.entities.Event.FirstOrDefault(x => x.id == set.EventId); if (prevEvent == null) { prevEvent = setEvent; } if (prevEvent.id != setEvent.id) { builder.AddInlineField(prevEvent.name, eventInfo); prevEvent = setEvent; eventInfo = ""; } int playerPlace = 1; Player player2 = null; if (Convert.ToInt64(player[0].EntrantId) == set.Entrant1Id) { player2 = players.FirstOrDefault(x => set.Entrant2Id == Convert.ToInt64(x.EntrantId)); } else { player2 = players.FirstOrDefault(x => set.Entrant1Id == Convert.ToInt64(x.EntrantId)); playerPlace = 2; } if (player2 != null) { string gameinfo = ""; foreach (var game in set.Games) { gameinfo += $"{characters[(int) game.Entrant1P1CharacterId - 1]} {game.Entrant1P1Stocks} - {game.Entrant2P1Stocks} {characters[(int) game.Entrant2P1CharacterId - 1]}\n"; } if (gameinfo == "") { gameinfo = "Nothing available\n"; } if (playerPlace == 1 && set.Entrant1Score != null && set.Entrant2Score != null) { eventInfo += $"**{set.FullRoundText}:**\n{player[0].GamerTag} - {player2.GamerTag}: {set.Entrant1Score} - {set.Entrant2Score}\n" + gameinfo + "\n"; if (set.Entrant1Score != null) { wins += (double)set.Entrant1Score; } if (set.Entrant2Score != null) { losses += (double)set.Entrant2Score; } } else if (set.Entrant1Score != null && set.Entrant2Score != null) { eventInfo += $"**{set.FullRoundText}:**\n{player2.GamerTag} - {player[0].GamerTag}: {set.Entrant1Score} - {set.Entrant2Score}\n" + $"{gameinfo}\n"; if (set.Entrant2Score != null) { wins += (double)set.Entrant1Score; } if (set.Entrant1Score != null) { losses += (double)set.Entrant2Score; } } } } //builder.AddField("Results", ssetinfo); var imageurl = player[0].Images.FirstOrDefault(x => x.Type == "profile"); if (imageurl != null) { builder.WithThumbnailUrl(imageurl.Url); } if (wins != 0 && losses != 0) { eventInfo += $"\n" + $"***Overall performance***\n" + $"**Games Won: **{wins}\n" + $"**Games Lost: **{losses}\n" + $"**Winrate: **{Math.Round((wins / (wins + losses) * 100), 2)}%"; } builder.AddInlineField(prevEvent.name, eventInfo); } } if (!playerFound) { builder = Builders.BaseBuilder("Player not found", "", Color.Red, null, ""); } await ReplyAsync("", embed : builder.Build()); await message.DeleteAsync(); }
public async Task GetInfo([Remainder] string name) { Discord.EmbedBuilder builder = null; var root = RequestHandler.GetTournamentRoot(name); if (root.entities != null) { if (!root.entities.tournament.Private) { var tournament = root.entities.tournament; builder = Builders.BaseBuilder(tournament.name, "", Color.DarkGreen, null, null); var baseDate = new DateTime(1970, 1, 1, 0, 0, 0); var startDate = baseDate.AddSeconds(tournament.startAt); var endDate = baseDate.AddSeconds(tournament.endAt); builder.AddField("Information", $"**Name: **{tournament.name}\n" + $"**Venue: **{tournament.venueName}\n" + $"**Venue Adress: **{tournament.venueAddress}\n" + $"**Timezone: **{tournament.timezone.Replace("/", " ").Replace("_", "")}\n" + $"**From **{startDate.ToLongDateString()} \n" + $"**To:** {endDate.ToLongDateString()}"); if (root.entities.videogame != null && root.entities.videogame.Count < 20) { foreach (var game in root.entities.videogame) { var events = root.entities.Event.Where(x => x.videogameId == game.id).ToList(); string info = ""; events.ForEach(x => info += "- " + x.name + "\n"); builder.AddInlineField(game.name, info); } } else if (root.entities.videogame != null) { string info = "**Games Available:**\n"; foreach (var videoGame in root.entities.videogame) { if (info.Length > 900) { info += "For more info check Smash.gg"; break; } info += videoGame.name + "\n"; } builder.AddField("Games", info); } var image = tournament.images.FirstOrDefault(x => x.type == "profile"); if (image != null) { builder.WithThumbnailUrl(image.url); } var banner = tournament.images.FirstOrDefault(x => x.type == "banner"); if (banner != null) { builder.ImageUrl = banner.url; } } else { builder = Builders.BaseBuilder("Tournament is private.", "", Color.Red, null, ""); builder.AddField("No access", "The tournament you are trying to access is labeled as private in Smash.gg\nWhile we could technically show you the data, we decided not to be unethical and protect the user."); } } else { builder = Builders.BaseBuilder("Tournament was not found.", "", Color.Red, null, ""); } await ReplyAsync("", embed : builder.Build()); }