【发布时间】:2015-03-15 06:35:44
【问题描述】:
我制作了一个 twitch irc 机器人。 我已经设置了一个小“系统”,可以在流在线时自行开启,并在流不再在线时关闭。
我使用以下代码:
if (TwitchStatus.isstreamlive && multistartprepare == false && multistartprepare2 == false){
livemode = true;
multistartprepare = true;
startedAt = DateTime.now();
startup();
}else{
if (TwitchStatus.isstreamlive == false && multistartprepare){
livemode = false;
multistartprepare = false;
multistartprepare2 = false;
TTmsg.cancel();
TTmsg.purge();
}
}
isstreamlive 是一个布尔值,当流处于实时状态时为 true,当流处于离线状态时为 false。
isstreamlive 通过发出 JSON 请求每 5 秒更新一次,并始终保持正确的值。
现在的问题是 startup() 方法会为 irc 聊天中的问候消息激活计时器。不知何故,当我启动我的机器人时,计时器被执行了 2 或 3 次,所以我猜我的 if else 语句有问题。
布尔值 multistartprepare 和 multistartprepare2 在启动时为假,机器人每次只启动一次,直到流结束,他可以离线。
上面有什么问题吗?猜猜代码被执行了很多次。
问候和抱歉英语不好:D
【问题讨论】:
标签: java if-statement