Пример #1
0
        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);
        }
Пример #2
0
        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));
        }