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)); } } }
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); }
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; } }