Exemple #1
0
        void Cmd_setcards(string nick, string message)
        {
            var chan = p_manager.GetChannel();

            string[] args = Chatcommand.Split(message);

            if (chan.GetUserData(nick).hostmask != G.settings["owner_hostmask"])
            {
                chan.Say(nick + ": who are you?");
                return;
            }
            if (args.Length < 4)
            {
                chan.Say(nick + ": Too few cards! Add more.");
                return;
            }

            var lchan = lchans.Find(item => item.is_active);

            if (lchan != null)
            {
                chan.Say(nick + ": Cannot change; wait for channel " +
                         lchan.name + " to complete the game.");
                return;
            }
            CARD_TYPES = args;
            chan.Say(nick + ": Set the cards! Deck size is now " + args.Length * 4);
        }
Exemple #2
0
        void OnUserSay(string nick, string message)
        {
            #region CTCP
            string message_l = message.ToLower();
            if (message_l == "\x01version\x01")
            {
                Notice(nick, "\x01VERSION " + G.settings["identifier"] + "\0x01");
                L.Log("E::OnChatMessage, sending version to " + nick);
                return;
            }
            if (message_l == "\x01time\x01")
            {
                Notice(nick, "\x01TIME " + DateTime.UtcNow.ToString("s") + "\0x01");
                L.Log("E::OnChatMessage, sending time to " + nick);
                return;
            }
            #endregion

            Channel chan = manager.GetChannel();
            L.Log(chan.GetName() + "\t <" + nick + "> " + message);

            #region Args
            {
                string to_replace = G.settings["nickname"] + ": ";
                if (message.StartsWith(to_replace, StringComparison.OrdinalIgnoreCase))
                {
                    message = message.Substring(to_replace.Length).Trim();
                    if (message.Length > 0 && !message.StartsWith(G.settings["prefix"]))
                    {
                        message = G.settings["prefix"] + message;
                    }
                }
            }

            string[] args   = Chatcommand.Split(message);
            int      length = args.Length;

            if (args.Length < 10)
            {
                Array.Resize(ref args, 10);
            }

            for (int i = length; i < args.Length; i++)
            {
                args[i] = "";
            }
            #endregion

            #region Handle NickServ + return
            if (nick == "NickServ" && length >= 3)
            {
                // NickServ can send different kinds of answers
                m_Lua module = (m_Lua)manager.GetModule("Lua");

                if (Utils.isYes(G.settings["nickserv_acc"]) == 1)
                {
                    if (args[1] == "ACC" && module != null)
                    {
                        module.userstatus_queue[args[0]] = args[2][0] - '0';
                        return;
                    }
                }
                else
                {
                    if (args[0] == "STATUS" && module != null)
                    {
                        module.userstatus_queue[args[1]] = args[2][0] - '0';
                        return;
                    }
                }
                // Add more here?

                return;
            }
            #endregion

            if (args[0] == ".bots")
            {
                chan.Say(G.settings["identifier"]);
                return;
            }

            if (message.Length < 2 || !message.StartsWith(G.settings["prefix"]))
            {
                return;
            }

            manager.OnUserSay(nick, message, length, ref args);
        }
Exemple #3
0
        void OnUserSay(string nick, string message)
        {
            #region CTCP
            string message_l = message.ToLower();
            if (message_l == "\x01version\x01")
            {
                Notice(nick, "\x01VERSION " + G.settings["identifier"] + "\0x01");
                L.Log("E::OnChatMessage, sending version to " + nick);
                return;
            }
            if (message_l == "\x01time\x01")
            {
                Notice(nick, "\x01TIME " + DateTime.UtcNow.ToString("s") + "\0x01");
                L.Log("E::OnChatMessage, sending time to " + nick);
                return;
            }
            #endregion

            Channel chan = manager.GetChannel();
            L.Log(chan.GetName() + "\t <" + nick + "> " + message);

            #region Args
            {
                string to_replace = G.settings["nickname"] + ": ";
                if (message.StartsWith(to_replace, StringComparison.OrdinalIgnoreCase))
                {
                    message = message.Substring(to_replace.Length).Trim();
                    if (message.Length > 0 && message[0] != '$')
                    {
                        message = '$' + message;
                    }
                }
            }

            string[] args   = Chatcommand.Split(message);
            int      length = args.Length;

            if (args.Length < 10)
            {
                Array.Resize(ref args, 10);
            }

            for (int i = length; i < args.Length; i++)
            {
                args[i] = "";
            }
            #endregion

            #region Handle NickServ + return
            if (nick == "NickServ" && length >= 3)
            {
                if (Utils.isYes(G.settings["nickserv_acc"]) == 1)
                {
                    if (args[1] == "ACC")
                    {
                        manager.ReceivedUserStatus(args[1], args[2][0] - '0');
                        return;
                    }
                }
                else
                {
                    if (args[0] == "STATUS")
                    {
                        manager.ReceivedUserStatus(args[1], args[2][0] - '0');
                        return;
                    }
                }
                // Add more here?

                return;
            }
            #endregion

            if (args[0] == ".bots")
            {
                chan.Say(G.settings["identifier"]);
                return;
            }

            if (message.Length < 2 || message[0] != '$')
            {
                return;
            }

            manager.Fork("E::OnUserSay", message, delegate() {
                manager.OnUserSay(nick, message, length, ref args);
            });
        }