Beispiel #1
0
        public override void OnChatMessage(IrcSession s, IrcUser sender, string target, string text)
        {
            char[] trimOut = new Char[1];
            string cmd     = null;
            string key;

            trimOut[0] = '\x0001';

            if (CList == null)
            {
                CList = new CommandList();
                CList.AddLocalCommand(new EvaluateCommand(s, Channel), 2);
                CList.AddLocalCommand(new CallCommand("!whatis", new CommandDelegate((o, a) => Fun.WhatIs(a[1]))), 2);
                CList.AddLocalCommand(new BasicCommand("!ping", "PONG!"), 2);
                CList.AddLocalCommand(new CallCommand("!help", new CommandDelegate((o, a) => {
                    StringBuilder sb = new StringBuilder("Available commands: ");
                    foreach (string st in CList.GetCommands(2))
                    {
                        sb.Append(st);
                        sb.Append(' ');
                    }
                    return(sb.ToString());
                })), 2);
            }
            if (text[0] == 1 && text[text.Length - 1] == 1)
            {
                text = text.Trim(trimOut);
                cmd  = text.Split(' ')[0];

                text = text.Remove(0, cmd.Length);
                text = text.Trim();
            }
            key = text.Split(' ')[0];
            if (cmd != null && cmd == "ACTION")
            {
                Console.WriteLine("*{0} {1}*", sender.CurrentNick, text);
            }
            else
            {
                Console.WriteLine("<{0}> {1}", sender.CurrentNick, text);
            }
            if (target.ToLower() == Channel.ToLower())
            {
                string outp = CList.Parse(2, text);
                if (outp != null)
                {
                    s.Msg(Channel, CList.Parse(2, text));
                }
            }
        }
Beispiel #2
0
        public string Command(int priv, string[] args)
        {
            string code = "";

            for (int x = 1; x < args.Length; x++)
            {
                code = code + args[x];
                code = code + " ";
            }
            KerbalEval eval;

            eval = new KerbalEval();
            eval.SetCodeFinishedHandler((o, output) => { Session.Msg(Channel, output); sent++; });
            eval.Evaluate(code);
            calls++;
            return(null);
        }
Beispiel #3
0
        public void HandleLocalInput(string input)
        {
            char[] seperator = new Char[1];
            seperator[0] = ' ';
            input        = input.Trim();
            string[] args = input.Split(seperator);
            switch (args[0])
            {
            case "":
                break;

            case "/quit":
                mySession.Quit("gala out!");
                break;

            case "/msg":
                if (args.Length < 3)
                {
                    break;
                }
                String text = args[2];
                if (args.Length > 3)
                {
                    for (int x = 3; x < args.Length; x++)
                    {
                        text = String.Concat(text, " ");
                        text = String.Concat(text, args[x]);
                    }
                }
                mySession.Msg(args[1], text);
                break;

            case "/list":
                List <IrcNick> users = mySession.GetChannelUsers(channel);
                if (users == null)
                {
                    break;
                }
                foreach (IrcNick nick in users)
                {
                    Console.Write("{0} ", nick.RawNick);
                }
                Console.WriteLine("");
                break;

            case "/me":
                if (args.Length < 2)
                {
                    break;
                }
                text = args[1];
                if (args.Length > 1)
                {
                    for (int x = 2; x < args.Length; x++)
                    {
                        text = String.Concat(text, " ");
                        text = String.Concat(text, args[x]);
                    }
                }
                mySession.Action(channel, text);
                break;

            case "/mode":
                if (args.Length == 1)
                {
                    mySession.SetUserMode(null, false);
                    break;
                }
                if (args[1][0] != '+' && args[1][0] != '-')
                {
                    break;
                }
                mySession.SetUserMode(args[1].Substring(1), args[1][0] == '-');
                break;

            case "/cmode":
                if (args.Length < 1)
                {
                    break;
                }
                if (args.Length == 1)
                {
                    mySession.SetChannelMode(channel, null, null, false);
                    break;
                }
                if (args[1][0] != '+' && args[1][0] != '-')
                {
                    break;
                }
                string ModeOption = null;
                if (args.Length >= 3)
                {
                    ModeOption = args[2];
                }
                Console.WriteLine(ModeOption);
                mySession.SetChannelMode(channel, args[1].Substring(1), ModeOption, args[1][0] == '-');
                break;

            default:
                if (input[0] == '/')
                {
                    break;
                }
                mySession.Msg(channel, input);
                break;
            }
        }