Итак, у меня есть Discord-бот, которому я пытаюсь отправлять сообщения каждый час. Я получил эту часть работы, используя службу запланированного исполнителя. Он начинается, когда я говорю! Futureson
Я хочу иметь возможность останавливать его, когда я отправляю! Futuresoff
Однако я не могу заставить это работать должным образом. Вот мой код:
String[] args = event.getMessage().getContentRaw().split(" ");
if (args[0].equalsIgnoreCase("!futuresOn")) {
Color red = new Color(255, 0, 0);
Color green = new Color(0, 204, 0);
Runnable futRun = new Runnable() {
public void run() {
EmbedBuilder futuresBot = new EmbedBuilder();
futuresBot.setAuthor("Futures Bot", null, event.getAuthor().getAvatarUrl());
try {
futuresBot.addField("**S&P 500**", getSPY(), false);
futuresBot.addField("**NASDAQ**", getNASDAQ(), false);
futuresBot.addField("**DOW**", getDOW(), false);
if (getSPY().contains("+")) {
futuresBot.setColor(green);
}
else {
futuresBot.setColor(red);
}
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
futuresBot.setFooter("Cantina Capital", event.getGuild().getIconUrl());
event.getChannel().sendMessage(futuresBot.build()).queue();
}
};
exec.scheduleAtFixedRate(futRun, 0, 1, TimeUnit.HOURS);
}
if (args[0].equalsIgnoreCase("!futuresoff")) {
event.getChannel().sendMessage("Futures bot off.").queue();
exec.shutdownNow();
}
Я пробовал это несколькими разными способами, но не могу заставить его работать должным образом. Он переходит к части! Futuresoff, потому что отправляет сообщение боту Futures. Я просто хочу, чтобы он мог отправлять сообщение один раз в час, когда отправлено! Futureson, а не когда отправлено! Futuresoff. Я также попробовал ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(0);
Я был бы признателен за любую помощь или кого-нибудь, кто мог бы указать мне в правильном направлении.