public async Task CreateTournamentCommand( [Summary("The name of the tournament.")] string tournamentName, [Summary("The format of the tournament.")] string format, [Summary("The UTC time of the tournament, in the form HHMM (ie, 1600 for 4PM UTC)")] ushort utcTime, [Summary("The calendar date of the tournament in DD/MM/YYYY, DD/MM, or DD. The missing fields will be autofilled.")] string calendarDate = "" ) { var tourney = Tournament.GenerateTournament(tournamentName, utcTime, calendarDate, format); var msgTask = SendProgressAsync(EmbedHelper.GenerateInfoEmbed(":arrows_counterclockwise: Created tournament. Creating on challonge...")); var msg = await msgTask; var ct = await tourney.SetUpChallonge(); var atTask = Program.Controller.AddTournament(tourney); await atTask; await msg.DeleteAsync(); await ReplyAsync(EmbedHelper.GenerateSuccessEmbed( $"Created the tournament **{tournamentName}**:" + Environment.NewLine + Environment.NewLine + $"Date: {tourney.GetStartTimeStr()}" + Environment.NewLine + $"Challonge URL: {ct.FullChallongeUrl}" )); await SetCurrentTournamentCommand(Program.Controller.Tournaments.Count); }
public async Task DeleteChannelsCommand() { var msg = await Program.DiscordIO.SendMessage("", Context.Channel, EmbedHelper.GenerateInfoEmbed($":arrows_counterclockwise: Deleting channels - please wait...")); await((SocketTextChannel)Program.Config.GetAchievementsChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetCommandChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetLogsChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetActiveMatchesChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetLeaderboardChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetLogsChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetTourneysChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetSignupLogsChannel()).DeleteAsync(); await((SocketTextChannel)Program.Config.GetSignupsChannel()).DeleteAsync(); Program.Config.LogsChannelId = 0; Program.Config.AchievementsChannelId = 0; Program.Config.CommandChannelId = 0; Program.Config.LeaderboardChannelId = 0; Program.Config.HistoryChannelId = 0; Program.Config.ActiveMatchesChannelId = 0; Program.Config.TourneysChannelId = 0; Program.Config.SignupLogsChannelId = 0; Program.Config.SignupsChannelId = 0; await msg.DeleteAsync(); await ReplyAsync(EmbedHelper.GenerateSuccessEmbed("Deleted the bot channels.")); }
public async Task ResendAchvsCommand() { var msg = await SendProgressAsync( EmbedHelper.GenerateInfoEmbed($":arrows_counterclockwise: Resending all achievements...")); foreach (var a in Program.Controller.Achievements.AchievementsList) { await a.DeleteMessage(); await a.SendMessage(); } await ReplyAsync(EmbedHelper.GenerateSuccessEmbed($"Resent {Program.Controller.Achievements.AchievementsList.Count()} achievement(s).")); }
public async Task PingCommand() { var timeAuthorSent = Context.Message.Timestamp; var timeReceivedAuthor = DateTimeOffset.UtcNow; var msg = await Program.DiscordIO.SendMessage("", Context.Channel, EmbedHelper.GenerateInfoEmbed(":clock1: Ping received. Measuring latency...")); var timeSent = msg.Timestamp; var diff1 = Math.Max(0, (timeReceivedAuthor - timeAuthorSent).Milliseconds); var diff2 = Math.Max(0, (timeSent - timeReceivedAuthor).Milliseconds); await Task.WhenAll( ReplyAsync(EmbedHelper.GenerateInfoEmbed($"Gateway receive latency: **{diff1}ms**" + Environment.NewLine + $"Gateway send latency: **{diff2}ms**" + Environment.NewLine + $"Total ping: **{diff1 + diff2}ms**", ":ping_pong: Pong!", null)), msg.DeleteAsync() ); }
public async Task SetupChannelsCommand() { var msg = await Program.DiscordIO.SendMessage("", Context.Channel, EmbedHelper.GenerateInfoEmbed($":arrows_counterclockwise: Setting up channels - please wait...")); // Create Categories. var achievementsCat = (await Program.DiscordIO.CreateCategory("Achievements")).Id; var manageCat = (await Program.DiscordIO.CreateCategory("Skillbot Management")).Id; var skillCat = (await Program.DiscordIO.CreateCategory("Matches")).Id; var tourneyCat = (await Program.DiscordIO.CreateCategory("Tournaments")).Id; // Create channels. var achievementsId = (await Program.DiscordIO.CreateChannel("achievements", achievementsCat)).Id; var commandsId = (await Program.DiscordIO.CreateChannel("commands", manageCat)).Id; var logsId = (await Program.DiscordIO.CreateChannel("logs", manageCat)).Id; var leaderboardId = (await Program.DiscordIO.CreateChannel("leaderboard", skillCat)).Id; var historyId = (await Program.DiscordIO.CreateChannel("match-history", skillCat)).Id; var activeMatchesId = (await Program.DiscordIO.CreateChannel("active-matches", manageCat)).Id; var tourneysId = (await Program.DiscordIO.CreateChannel("tournaments", tourneyCat)).Id; var signupLogsId = (await Program.DiscordIO.CreateChannel("signup-log", tourneyCat)).Id; var signupsId = (await Program.DiscordIO.CreateChannel("signups", tourneyCat, true)).Id; // Save to config. Program.Config.AchievementsChannelId = achievementsId; Program.Config.CommandChannelId = commandsId; Program.Config.LogsChannelId = logsId; Program.Config.LeaderboardChannelId = leaderboardId; Program.Config.HistoryChannelId = historyId; Program.Config.ActiveMatchesChannelId = activeMatchesId; Program.Config.TourneysChannelId = tourneysId; Program.Config.SignupLogsChannelId = signupLogsId; Program.Config.SignupsChannelId = signupsId; await msg.DeleteAsync(); Program.CurLeaderboard.InvokeChange(); await ReplyAsync(EmbedHelper.GenerateSuccessEmbed("Succesfully created all the required channels. Basic permissions have been set up for the channels. Change the permissions as you please.")); }
public async Task ViewTournaments() { var tourneys = Program.Controller.Tournaments; if (tourneys == null || tourneys.Count == 0) { await ReplyAsync(EmbedHelper.GenerateInfoEmbed("There are no tournaments.")); return; } var eb = new EmbedBuilder().WithColor(Discord.Color.Blue); for (int i = 0; i < tourneys.Count; ++i) { eb.AddField((i + 1) + " - " + tourneys[i].Name, "Time: " + tourneys[i].GetStartTimeStr()); } await ReplyAsync(eb.Build()); }
public Task BetterBotCommand(string a) { return(ReplyAsync(EmbedHelper.GenerateInfoEmbed($"OpenSkillBot is superior."))); }