From 23d2ede6124b0a7b10a74058a396477d52941337 Mon Sep 17 00:00:00 2001 From: TrueDoctor Date: Sun, 8 Apr 2018 20:23:57 +0200 Subject: Did a lot of awsome stuff --- DiscoBot/CommandExtension.cs | 47 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 DiscoBot/CommandExtension.cs (limited to 'DiscoBot/CommandExtension.cs') diff --git a/DiscoBot/CommandExtension.cs b/DiscoBot/CommandExtension.cs new file mode 100644 index 0000000..06eec92 --- /dev/null +++ b/DiscoBot/CommandExtension.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DiscoBot +{ + using System.ComponentModel; + using System.Threading; + using Discord; + using Discord.Commands; + + public static class CommandExtension + { + public static async Task ReplyTimed(this ModuleBase m, string message, TimeSpan time) + { + var token = message.GetHashCode(); + var send = m.Context.Channel.SendMessageAsync($"#{token}\n```xl\n{message}```", true); + + BackgroundWorker barInvoker = new BackgroundWorker(); + barInvoker.DoWork += delegate + { + Thread.Sleep(time); + delete(token, m); + }; + + await send; + barInvoker.RunWorkerAsync(); + } + + private static async void delete(int token, ModuleBase m) + { + var messagesAsync = m.Context.Channel.GetMessagesAsync(100); + Task.WaitAll(messagesAsync.ToArray()); + var list = messagesAsync.ToEnumerable().ToList(); + var messages = new List(); + foreach (var task in list) + { + messages.AddRange(task.ToList()); + } + + await m.Context.Channel.DeleteMessagesAsync(messages.Where(x => x.Content.StartsWith($"#{token}\n") && x.Author.IsBot)); + } + } + +} -- cgit v1.2.3-70-g09d2