handle events in a separate thread

This commit is contained in:
anthorob committed 2025-03-09 15:32:26 -04:00
1 parent 3466fb536d
commit 0b7c1bfe4f
1 file changed
+4 -1
@@ -20,6 +20,7 @@ import me.bobert.netneutrality.core.context.CommandContext;
import me.bobert.netneutrality.core.context.Context; import me.bobert.netneutrality.core.context.Context;
import me.bobert.netneutrality.core.context.TaskContext; import me.bobert.netneutrality.core.context.TaskContext;
import me.bobert.netneutrality.core.tasks.TaskManager; import me.bobert.netneutrality.core.tasks.TaskManager;
import me.bobert.netneutrality.core.thread.ThreadManager;
import me.bobert.netneutrality.db.service.GuildService; import me.bobert.netneutrality.db.service.GuildService;
import me.bobert.netneutrality.utils.Settings; import me.bobert.netneutrality.utils.Settings;
import net.dv8tion.jda.api.entities.Message; import net.dv8tion.jda.api.entities.Message;
@@ -41,12 +42,14 @@ import org.slf4j.LoggerFactory;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.function.Consumer; import java.util.function.Consumer;
import java.util.function.Function; import java.util.function.Function;
public class EventsHandler implements EventListener { public class EventsHandler implements EventListener {
private static final Map<Class<? extends Event>, Function<? extends Event, Context>> listeners = new ConcurrentHashMap<>(); private static final Map<Class<? extends Event>, Function<? extends Event, Context>> listeners = new ConcurrentHashMap<>();
private static final Logger logger = LoggerFactory.getLogger(EventsHandler.class); private static final Logger logger = LoggerFactory.getLogger(EventsHandler.class);
private final ExecutorService executorService = ThreadManager.getExecutor("events-handler");
static { static {
addListener(MessageReceivedEvent.class, event -> { addListener(MessageReceivedEvent.class, event -> {
@@ -109,7 +112,7 @@ public class EventsHandler implements EventListener {
@Override @Override
public void onEvent(@NotNull GenericEvent event) { public void onEvent(@NotNull GenericEvent event) {
handleEvent((Event) event); executorService.submit(() -> handleEvent((Event) event));
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")