По сути, у меня есть метод onGuildMessageReceived, который прослушивает команду alarm, с помощью которой пользователь может установить обратный отсчет, чтобы уведомить его с помощью сообщения. Они вводят количество времени и возможное сообщение о тревоге, которое приходит с пингом, который они получат по истечении этого времени.
У меня вопрос: как я могу заставить эту функцию работать для каждого пользователя отдельно, чтобы другие пользователи не перезаписывали предыдущее время будильника, которое уже было отмечено?
Этот метод вызывается в основном коде для запуска обратного отсчета.
public void StartTimer(int seconds, GuildMessageReceivedEvent event)
{
timer = new Timer();
timer.schedule(new TimerReminder(event), seconds * 1000);
}
public void StartTimer(int seconds, GuildMessageReceivedEvent event, String text)
{
timer = new Timer();
timer.schedule(new TimerReminder(event, text), seconds * 1000);
}
У меня есть этот подкласс, который выполняет блок кода после времени .schedule ().
class TimerReminder extends TimerTask{
GuildMessageReceivedEvent eventtrigger;
String alarmText = "";
private TimerReminder(GuildMessageReceivedEvent event)
{
eventtrigger=event;
}
private TimerReminder(GuildMessageReceivedEvent event, String alarmArg)
{
eventtrigger=event;
alarmText=alarmArg;
}
public void run()
{
if(alarmText.isEmpty())
{
eventtrigger.getChannel().sendMessage("<@"+auth+">, ***your alarm is ringing!***????????????????").queue();
timer.cancel(); // Terminate the timer thread
}
else
{
eventtrigger.getChannel().sendMessage("<@"+auth+">:\n"+alarmText).queue();
timer.cancel(); // Terminate the timer thread
alarmText="";
}
}
}