コード例 #1
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
 private void handlePrivMsg(IRCMsg msg) {
   if (msg.getArgs()[0].startsWith("#")) {
     log.info(msg.getOriginalMsg());
     handleChannelMsg(msg);
   } else if (msg.getArgs()[0].equals(botnick)) {
     log.info(msg.getOriginalMsg());
     handlePrivateMsg(msg);
   } else {
     log.error("Something went very wrong parsing: " + msg.getOriginalMsg());
   }
 }
コード例 #2
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
  /**
   * Valid bot commands for nick Botnick are... 1. !Botnick cmd 2. !botnick cmd
   *
   * <p>Not yet implemented 1. !cmd 2. !B cmd 3. !b cmd
   *
   * @param msg
   * @return
   */
  public boolean msgIsCommand(IRCMsg msg) {

    if (null == msg.getTrailing()) {
      return false;
    }

    String tmpTrailing = msg.getTrailing().toLowerCase();

    if (tmpTrailing.startsWith("!" + botnick.charAt(0))) {
      return true;
    } else if (tmpTrailing.startsWith("!" + botnick)) {
      return true;
    }

    return false;
  }
コード例 #3
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
 private void handleMode(IRCMsg msg) {
   if (!msg.getPrefix().equals(msg.getArgs()[0])) {
     if (msg.getArgs().length == 3) {
       log.info(msg.getArgs()[0] + " gave " + msg.getArgs()[1] + " to " + msg.getArgs()[2]);
     } else {
       log.info(msg.getArgs()[0] + " gave " + msg.getArgs()[1]);
     }
   }
 }
コード例 #4
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
  public void handleNotice(IRCMsg msg) {

    if (msg.getTrailing().contains("This nickname is registered and protected.")) {
      //	outboundMsgQ.add( ircCommands.nickservIdentify() );

    } else if (msg.getTrailing().contains("Password accepted -- you are now recognized.")) {
      outboundMsgQ.add(ircCommands.joinHomeChannel());

    } else if (msg.getTrailing()
        .contains("Inviting " + botnick + " to channel " + startchan + ".")) {

      log.info("Single-vector join");
      outboundMsgQ.add(ircCommands.joinHomeChannel());

    } else if (msg.getTrailing().contains("Inviting")
        && msg.getTrailing().contains("to channel")
        && msg.getTrailing().contains(startchan)) {

      log.info("Multi-vector join");
      outboundMsgQ.add(ircCommands.joinHomeChannel());
    }
  }
コード例 #5
0
  @Test
  public void testMsgFromAdmin() {

    String channelMsg =
        ":[email protected] PRIVMSG #channelname :!b flirt nick";
    String adminMsg =
        ":[email protected] PRIVMSG #channelname :!botnick flirt nick";

    //  Set up bot and command
    IRCBot mockBot = new IRCBot(false);
    FlirtCommand flirtCommand = new FlirtCommand(mockBot);

    IRCMsg badFlirtMsg = mockBot.getIRCMsgHandler().createAndDecorateMsg(channelMsg);
    Assert.assertFalse(flirtCommand.listen(badFlirtMsg));
    String pollResult = mockBot.getOutboundMsgQ().poll();
    Assert.assertNull(pollResult);

    IRCMsg goodFlirt = mockBot.getIRCMsgHandler().createAndDecorateMsg(adminMsg);
    Assert.assertTrue(goodFlirt.isFromAdmin());

    mockBot.getIRCMsgHandler().handleMsg(adminMsg);
    pollResult = mockBot.getOutboundMsgQ().poll();
    Assert.assertNotNull(pollResult);
  }
コード例 #6
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
 private void handleErrorInviteOnly(IRCMsg msg) {
   if (msg.getArgs()[1].equals(startchan)) {
     outboundMsgQ.add(ircCommands.chanservInvite());
   }
 }
コード例 #7
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
 private void handleJoin(IRCMsg msg) {
   log.info(msg.getFromNick() + " joined " + msg.getTrailing());
 }
コード例 #8
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
 private void handleQuit(IRCMsg msg) {
   log.info(msg.getFromNick() + " QUIT " + msg.getTrailing());
 }
コード例 #9
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
 private void handleNick(IRCMsg msg) {
   log.info("NICK: " + msg.getFromNick() + " changed to " + msg.getTrailing());
 }
コード例 #10
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
  public IRCMsg interpretMsg(IRCMsg msg) {

    if (msg.getCommand().equals("PRIVMSG")) {
      handlePrivMsg(msg);

    } else if (msg.getCommand().equals("JOIN")) {
      handleJoin(msg);

    } else if (msg.getCommand().equals("MODE")) {
      handleMode(msg);

    } else if (msg.getCommand().equals("QUIT")) {
      handleQuit(msg);

    } else if (msg.getCommand().equals("NOTICE")) {
      handleNotice(msg);

    } else if (msg.getCommand().equals("NICK")) {
      handleNick(msg);

    } else if (msg.getCommand().equals("INVITE")) {
      handleInvite(msg);

    } else if (msg.getCommand().equals("473")) {
      handleErrorInviteOnly(msg);

    } else if (serverResponseCodesToIgnore.contains(msg.getCommand())) {
      //	Don't do anything on purpose

    } else {
      log.info("\nATTENTION MINION!!\nUnhandled command: " + msg.getCommand());
      log.info("Prefix: " + msg.getPrefix());
      log.info("Command: " + msg.getCommand());
      log.info("Args[0]: " + msg.getArgs()[0]);
      log.info("Trailing: " + msg.getTrailing());
    }

    return msg;
  }
コード例 #11
0
ファイル: IRCMsgHandler.java プロジェクト: JKyte/kytebot2.0
 public IRCMsg stripLeadingWordFromTrailing(IRCMsg msg) {
   String lesser = msg.getTrailing().substring(msg.getTrailing().indexOf(" ") + 1);
   msg.setTrailing(lesser);
   return msg;
 }