From 4e59ccb85d55ad643fe338dee33dbaf129c7966d Mon Sep 17 00:00:00 2001 From: Sean Stoves Date: Wed, 3 Jun 2020 00:17:38 -0400 Subject: [PATCH] Adding Admin Commands for Purging Messages --- .idea/.idea.ChaosBot/.idea/contentModel.xml | 1 + ChaosBot/Discord/Modules/AdminCommands.cs | 39 +++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 ChaosBot/Discord/Modules/AdminCommands.cs diff --git a/.idea/.idea.ChaosBot/.idea/contentModel.xml b/.idea/.idea.ChaosBot/.idea/contentModel.xml index 094d953..0cf5c79 100644 --- a/.idea/.idea.ChaosBot/.idea/contentModel.xml +++ b/.idea/.idea.ChaosBot/.idea/contentModel.xml @@ -12,6 +12,7 @@ + diff --git a/ChaosBot/Discord/Modules/AdminCommands.cs b/ChaosBot/Discord/Modules/AdminCommands.cs new file mode 100644 index 0000000..82f8fb1 --- /dev/null +++ b/ChaosBot/Discord/Modules/AdminCommands.cs @@ -0,0 +1,39 @@ +using System; +using Discord; +using System.Text; +using Discord.Commands; +using System.Threading.Tasks; +using System.Collections.Generic; +using Microsoft.Extensions.Configuration; +using NLog; + + +namespace ChaosBot.Discord.Modules +{ + public class AdminCommands : ModuleBase + { + private static readonly Logger _logger = Program._logger; + + + [Command("clear")] + [Alias("purge")] + [RequireBotPermission(GuildPermission.ManageMessages)] + [RequireUserPermission(GuildPermission.ManageMessages)] + public async Task ClearCommand(int msgtoDelete = 1) + { + try + { + IEnumerable messages = await Context.Channel.GetMessagesAsync(msgtoDelete + 1).FlattenAsync(); + await ((ITextChannel) Context.Channel).DeleteMessagesAsync(messages); + const int delay = 3000; + IUserMessage m = await ReplyAsync($"{msgtoDelete} messages deleted."); + await Task.Delay(delay); + await m.DeleteAsync(); + } + catch (Exception ex) + { + _logger.Error($"InfoCommands.InfoCommand: Exception [{ex}] thrown, <[{ex.Message}]>."); + } + } + } +} \ No newline at end of file