AltitudeBot/src/main/java/com/alttd/schedulers/EventTimerTask.java

46 lines
1.3 KiB
Java
Raw Normal View History

package com.alttd.schedulers;
import com.alttd.database.queries.events.Event;
import com.alttd.util.Logger;
import net.dv8tion.jda.api.entities.Message;
import java.time.Instant;
import java.util.Optional;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;
public class EventTimerTask extends TimerTask {
@Override
public void run() {
checkShouldStartEvent();
}
private void checkShouldStartEvent(){
Optional<Event> nextEvent = Event.getNextEvent();
if (nextEvent.isEmpty()) {
return;
}
Event event = nextEvent.get();
if (event.getStartTime().isAfter(Instant.now())) {
return;
}
Event.removeEvent(event);
performEventAction(event);
event.getRole().delete().queueAfter(1, TimeUnit.HOURS);
checkShouldStartEvent();
}
private void performEventAction(Event event) {
Optional<Message> optionalMessage = event.getMessage();
if (optionalMessage.isEmpty()) {
Logger.altitudeLogs.error("Unable to find message for event");
return;
}
Message message = optionalMessage.get();
message.reply(String.format("%s [%s] is starting!", event.getRole().getAsMention(), event.getTitle())).queue();
}
}