正如 Jdsfighter 所说,您需要使用onMessage(...)
PircBot 超类中的方法。每当有消息发送到您的频道时,都会调用此方法。我有点假设你现在已经理解了这一点,因为在制作 IRC 机器人时让机器人对聊天做出反应是 alpha 和 omega。
当涉及版主(IRC 术语中的操作员)时,Twitch IRC 服务器的行为方式并不被 PircBot 完全理解,而且我还没有成功使用User.isOp(...)
User 类中的方法。我发现成功的是在我的 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
}
}
现在您只需要编写一些代码来捕捉“!Poll”之后的其余行,并将有关不同投票选项的消息发回频道。
您显然需要在某个地方存储您的备选方案以及他们各自获得多少票,我建议只需两个数组, oneString[]
和 one int[]
。