1
0
mirror of https://github.com/GeyserMC/Floodgate.git synced 2025-12-19 14:59:20 +00:00

News needs a scheduled executor

This commit is contained in:
Tim203
2022-09-02 09:54:38 +02:00
parent 1a6aa3199d
commit bc1a98c31a

View File

@@ -34,10 +34,14 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.geysermc.event.Listener;
import org.geysermc.event.subscribe.Subscribe;
import org.geysermc.floodgate.api.logger.FloodgateLogger;
import org.geysermc.floodgate.command.util.Permission;
import org.geysermc.floodgate.event.ShutdownEvent;
import org.geysermc.floodgate.news.data.AnnouncementData;
import org.geysermc.floodgate.news.data.BuildSpecificData;
import org.geysermc.floodgate.news.data.CheckAfterData;
@@ -48,11 +52,10 @@ import org.geysermc.floodgate.util.HttpClient;
import org.geysermc.floodgate.util.HttpClient.HttpResponse;
@AutoBind
@Listener
public class NewsChecker {
private final ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
private final Map<Integer, NewsItem> activeNewsItems = new HashMap<>();
@Inject
@Named("commonPool")
private ScheduledExecutorService executorService;
@Inject
private CommandUtil commandUtil;
@@ -196,6 +199,15 @@ public class NewsChecker {
activateNews(item);
}
public void shutdown() {
executorService.shutdown();
}
@Subscribe
public void onShutdown(ShutdownEvent ignored) {
shutdown();
}
private void activateNews(NewsItem item) {
for (NewsItemAction action : item.getActions()) {
handleNewsItem(null, item, action);