public async Task PingAsync() { var context = this.Context.Channel.Name; Discord.ITextChannel channel = (Discord.ITextChannel) this.Context.Channel; //List<Discord.IMessage> messages = new List<Discord.IMessage>(); //List<Discord.IMessage> pinnedMessages = new List<Discord.IMessage>(); var temppinnedMessages = await channel.GetPinnedMessagesAsync(); var pinnedMessages = new List <Discord.IMessage>(); foreach (var message in temppinnedMessages) { pinnedMessages.Add(message); Console.WriteLine("Got pinned message: " + message.Content); } //List<Discord.IMessage> messages = new List<Discord.IMessage>(); List <Discord.IMessage> messages = new List <Discord.IMessage>(); var asyncmessages = channel.GetMessagesAsync(100000).ToEnumerable(); foreach (var message in asyncmessages) { foreach (var m in message) { messages.Add(m); } } foreach (var message in pinnedMessages) { try { messages.Remove(messages.Where(x => x.Id == message.Id).First()); Console.WriteLine("Attempted to remove pinned message from list of messages to remove: " + message.Content); } catch (Exception ex) { Console.WriteLine("Error removing pinned message: " + message.Content + " with exception " + ex.Message); } } await channel.DeleteMessagesAsync(messages); }
private string Remote(CultureInfo ci, StringWriter sw, string assembly, string args, Discord.IGuildUser sender, Discord.IGuild server, Discord.ITextChannel channel) { CultureInfo.DefaultThreadCurrentCulture = ci; CultureInfo.DefaultThreadCurrentUICulture = ci; Console.SetOut(sw); Console.SetError(sw); Assembly script = Assembly.LoadFrom(assembly); MethodInfo method = script.GetType("DuckBot.Script").GetMethod("Code"); Task <string> task = Task.Run(() => (string)method.Invoke(null, new object[] { args, sender, server, channel })); return(task.Wait(90000) ? task.GetAwaiter().GetResult() : throw new TargetInvocationException(null)); }