Example #1
0
        void adminAbstract(ServerMessage e, String m, Func <String, ulong, SocketUser, String> f)
        {
            var users   = e.msg.MentionedUsers.Where(x => !x.IsBot).Select(x => Tuple.Create(x.Mention, x.Id, x)).ToList();
            var message = "";

            if (!Funcs.validateMentionTarget(e, m))
            {
                message = "Unable to comply with command. \n\n"; //+ botInfo;
            }
            else
            {
                var m2 = f(users[0].Item1, users[0].Item2, users[0].Item3);
                if (m2 != "")
                {
                    message = m2;
                }
            }
            safeSendMessage(e.Channel, message);
        }
Example #2
0
        private void kill(ServerMessage e, string m)
        {
            var now         = e.msg.Timestamp;
            var fifteenMins = new TimeSpan(0, 15, 0);

            try
            {
                if (Funcs.validateMentionTarget(e, m))
                {
                    foreach (var c in e.Server.TextChannels)
                    {
                        List <ulong> messagesToDelete = new List <ulong>();
                        Console.Write(1);
                        foreach (var mes in c.CachedMessages.Reverse())
                        {
                            Console.Write(2);
                            if (now.Subtract(mes.Timestamp).CompareTo(fifteenMins) >= 0)
                            {
                                break;
                            }
                            if (mes.Author.Mention == m /* || mes.User.NicknameMention == m */)
                            {
                                Console.WriteLine("found message: " + mes.Content);
                                messagesToDelete.Add(mes.Id);
                            }
                        }
                        if (messagesToDelete.Count > 0)
                        {
                            c.DeleteMessagesAsync(messagesToDelete.ToArray());
                        }
                    }
                }
                else
                {
                    Console.WriteLine("unable to validate: " + m);
                }
            }
            catch (Exception exception)
            {
                server.safeSendMessage(e.Channel, exception.ToString());
            }
        }
Example #3
0
        void bork(ServerMessage e, String m)
        {
            var    split   = m.Split(" ".ToCharArray());
            string message = "Unable to comply with command. \n\n bork <mention-target> <emoticon> <on/off>";

            Console.WriteLine("Bork cmd got: " + m);
            if (split.Length == 3 || split.Length == 2)
            {
                if (Funcs.validateMentionTarget(e, split[0]))
                {
                    Emote emote;
                    //string emoji = server.toEmojiString(e, split[1]);
                    IEmote emoji = null;
                    if (Emote.TryParse(split[1], out emote))
                    {
                        emoji = emote;
                    }
                    else
                    {
                        emoji = new Emoji(split[1]);
                        server.safeSendMessage(e.Channel, split[1] + " is not a server emote, optimistically assuming it works anyway.");
                    }
                    if (emoji != null)
                    {
                        var user = Funcs.GetUserByMentionOrName(e.Server.Users, split[0]);
                        if (user == null)
                        {
                            message = "Could not find user: "******"currently borking " + emoji + " at " + split[0];
                                }
                                else
                                {
                                    message = "no such bork: " + emoji + " at " + split[0];
                                }
                            }
                            else if (split[2] == "on")
                            {
                                //                            var x = DC.ClientAPI.Send(new EmojiAddRequest(e.Channel.Id, e.Message.Id, ));
                                //                            x.Wait();
                                List <String> individualBorklist;
                                if (!borklist.TryGetValue(userId, out individualBorklist))
                                {
                                    individualBorklist = new List <string>();
                                    borklist.Add(userId, individualBorklist);
                                }
                                if (individualBorklist.Contains(emoji.ToString()) || (emote != null && individualBorklist.Find((ems) => ems.Contains(emote.Id.ToString())) != null))
                                {
                                    message = "Already doing this";
                                }
                                else
                                {
                                    individualBorklist.Add(emoji.ToString());
                                    server.XMlDictSerialization(borklistPath, borklist);
                                    message = "Understood, borking " + emoji + " at " + split[0] + " from now on";
                                }
                            }
                            else if (split[2] == "off")
                            {
                                List <String> individualBorklist;
                                if (!borklist.TryGetValue(userId, out individualBorklist))
                                {
                                    message = "I never did that in the first place";
                                }
                                else
                                {
                                    if (emote != null)
                                    {
                                        var t = individualBorklist.Find((ems) => ems.Contains(emote.Id.ToString()));
                                        if (t != null)
                                        {
                                            individualBorklist.Remove(t);
                                        }
                                    }
                                    else
                                    {
                                        individualBorklist.Remove(emoji.ToString());
                                    }
                                    if (individualBorklist.Count == 0)
                                    {
                                        borklist.Remove(userId);
                                    }
                                    server.XMlDictSerialization(borklistPath, borklist);
                                    message = "Understood, no more borking " + emoji + " at " + split[0] + " from now on";
                                }
                            }
                        }
                    }
                    else
                    {
                        message = "Invalid Emoji: " + split[1];
                    }
                }
            }
            server.safeSendMessage(e.Channel, message);
        }