正如 Jdsfighter 所说,您需要使用 PircBot 超类中的 onMessage(...) 方法。每当有消息发送到您的频道时,都会调用此方法。我假设你现在已经理解了这一点,因为在制作 IRC 机器人时让机器人对聊天做出反应是 alpha 和 omega。
当涉及到版主(IRC 术语中的操作员)时,Twitch IRC 服务器的行为方式并不被 PircBot 完全理解,而且我还没有成功使用 User 类中的 User.isOp(...) 方法。我发现成功的是在我的 Bot 类(不是主类)中包含以下内容:
Set<String> OPs = new HashSet<String>();
protected void onUserMode(String channel, String sourceNick, String sourceLogin, String sourceHostname, String recipient) {
recipient = recipient.split(" ")[2];
OPs.add(recipient);
}
每当您在控制台中看到以 MODE 开头的一行时,都会调用此方法,如下所示:
jtv MODE #channel +o moderatorName
现在,您需要创建一个在收到的消息以"!poll" 开头时调用的方法,并检查消息的发送者是否在 OP 集中。
这是给你的大纲,放在onMessage() 方法中
if (message.toLowerCase().startsWith("!poll") {
if (OPs.contains(sender)) {
//TODO Add body
}
}
现在您只需要编写一些代码来捕获“!投票”之后的其余行,并将有关不同投票选项的消息发回频道。
您显然需要在某个地方存储您的备选方案以及它们各自获得多少票,我建议只需两个数组,一个 String[] 和一个 int[]。