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