示例#1
0
        public override void Execute(object sender, IRCMessage message)
        {
            var hostname = message.Host.Split('@') [1];
            var entry    = Dns.GetHostEntry(hostname);

            if (IsBehindProxy(entry.AddressList))
            {
                OnScriptMessage(IRCMessageFactory.BuildBanMessage(message.Channel, message.Prefix));
                OnScriptMessage(IRCMessageFactory.BuildKickCommandMessage(message.Channel, message.Prefix.Split('!') [0], kickMessage));
            }
        }
示例#2
0
        public void ListenForCommandTest()
        {
            var called        = false;
            var commands      = new List <IBotCommand> ();
            var listenerwords = new List <String> ();

            listenerwords.Add("PRIVMSG");
            commands.Add(new Pipecleaner(listenerwords, new List <String> (),
                                         new List <string> (), false, SecureLevelEnum.Bot));
            var controller = new BotController(commands, String.Empty);

            controller.MessageSent += (s, e) => called = true;
            controller.ReceiveMessageHandler(this, IRCMessageFactory.BuildSendChannelMessage("#foo", "foobar"));
            Assert.AreEqual(true, called, "ERROR: Bot did not pick up on command");
        }
示例#3
0
        public void IRCMessageFactoryTests()
        {
            IRCMessage message = IRCMessageFactory.BuildActionMessage("#foo", "bar");

            Assert.AreEqual("ACTION #foo :bar", message.ToIRCString());
            message = IRCMessageFactory.BuildJoinChannelMessage("#foo");
            Assert.AreEqual("JOIN #foo", message.ToIRCString());
            message = IRCMessageFactory.BuildSetNickMessage("foo");
            Assert.AreEqual("NICK :foo", message.ToIRCString());
            message = IRCMessageFactory.BuildSendPassMessage("foo");
            Assert.AreEqual("PASS foo", message.ToIRCString());
            message = IRCMessageFactory.BuildPingMessage("foo.bar");
            Assert.AreEqual("PING :foo.bar", message.ToIRCString());
            message = IRCMessageFactory.BuildPongMessage("foo.bar");
            Assert.AreEqual("PONG :foo.bar", message.ToIRCString());
            message = IRCMessageFactory.BuildSendChannelMessage("#foo", "bar");
            Assert.AreEqual("PRIVMSG #foo :bar", message.ToIRCString());
            message = IRCMessageFactory.BuildQuitMessage();
            Assert.AreEqual("QUIT", message.ToIRCString());
            message = IRCMessageFactory.BuildPartMessage("#foo");
            Assert.AreEqual("PART #foo", message.ToIRCString());
            message = IRCMessageFactory.BuildUserMessage("foo", "foobar");
            Assert.AreEqual("USER foo 0 * :foobar", message.ToIRCString());
        }
示例#4
0
        public override void Execute(object sender, IRCMessage message)
        {
            var parameters = String.Format("identify {0}", _password);

            OnScriptMessage(IRCMessageFactory.BuildSendChannelMessage(_nickServName, parameters));
        }
示例#5
0
 public override void Execute(object sender, IRCMessage message)
 {
     OnScriptMessage(IRCMessageFactory.BuildPongMessage(message.TrailingParameters));
 }
示例#6
0
 public override void Execute(object sender, IRCMessage message)
 {
     OnScriptMessage(IRCMessageFactory.BuildSendChannelMessage("bot", "Pipe Cleaner Invoked"));
 }