diff --git a/ChaosBot/Discord/Modules/Admin/Clear.cs b/ChaosBot/Discord/Modules/Admin/Clear.cs new file mode 100644 index 0000000..c0197a6 --- /dev/null +++ b/ChaosBot/Discord/Modules/Admin/Clear.cs @@ -0,0 +1,35 @@ +using System; +using Discord; +using Discord.Commands; +using System.Threading.Tasks; +using System.Collections.Generic; +using ChaosBot.Discord.PreConditions; +using NLog; + +namespace ChaosBot.Discord.Modules.Admin +{ + public class Clear : ModuleBase + { + private static readonly ILogger _logger = Program.Logger; + + [Command("clear")] + [Alias("purge")] + [CheckCommandPerm] + 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($"AdminCommands.ClearCommand: Exception [{ex}] thrown, <[{ex.Message}]>."); + } + } + } +} \ No newline at end of file