StatusUpdate Discord 机器人
StatusUpdate Discord Bot
这是我更新状态的代码:
String[] status = new String[] {"Version: 1.5.0", "https://discord.gg/arWEM2h", "Love Backxtar", "You want me!", "Type: ~help", "User Counter: %members"};
int next = 60;
public void onSecond() {
if(next%5 == 0) {
if(!hasStarted) {
hasStarted = true;
StatChannelCommand.onStartUp();
}
Random rand = new Random();
int i = rand.nextInt(status.length);
shardMan.getShards().forEach(jda -> {
String text = status[i].replaceAll("%members", "" + jda.getUsers().size());
jda.getPresence().setActivity(Activity.playing(text));
});
StatChannelCommand.checkStats();
if(next == 0) {
next = 60;
}
}
else {
next--;
}
}
但是 String
是每秒 运行。我以为是每5秒一次。我做了 60 秒 % 5。这段代码有什么问题?
第一次进入方法onSecond()
时,条件next%5 == 0
将为true
。变量 next
不会更新,因为这只发生在 else
部分。因此,方法 next
的下一个 运行 仍将是 60
.
这是我更新状态的代码:
String[] status = new String[] {"Version: 1.5.0", "https://discord.gg/arWEM2h", "Love Backxtar", "You want me!", "Type: ~help", "User Counter: %members"};
int next = 60;
public void onSecond() {
if(next%5 == 0) {
if(!hasStarted) {
hasStarted = true;
StatChannelCommand.onStartUp();
}
Random rand = new Random();
int i = rand.nextInt(status.length);
shardMan.getShards().forEach(jda -> {
String text = status[i].replaceAll("%members", "" + jda.getUsers().size());
jda.getPresence().setActivity(Activity.playing(text));
});
StatChannelCommand.checkStats();
if(next == 0) {
next = 60;
}
}
else {
next--;
}
}
但是 String
是每秒 运行。我以为是每5秒一次。我做了 60 秒 % 5。这段代码有什么问题?
第一次进入方法onSecond()
时,条件next%5 == 0
将为true
。变量 next
不会更新,因为这只发生在 else
部分。因此,方法 next
的下一个 运行 仍将是 60
.