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.TaskContext;
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.utils.Settings;
import net.dv8tion.jda.api.entities.Message;
@@ -41,12 +42,14 @@ import org.slf4j.LoggerFactory;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.function.Consumer;
import java.util.function.Function;
public class EventsHandler implements EventListener {
private static final Map<Class<? extends Event>, Function<? extends Event, Context>> listeners = new ConcurrentHashMap<>();
private static final Logger logger = LoggerFactory.getLogger(EventsHandler.class);
private final ExecutorService executorService = ThreadManager.getExecutor("events-handler");
static {
addListener(MessageReceivedEvent.class, event -> {
@@ -109,7 +112,7 @@ public class EventsHandler implements EventListener {
@Override
public void onEvent(@NotNull GenericEvent event) {
handleEvent((Event) event);
executorService.submit(() -> handleEvent((Event) event));
}
@SuppressWarnings("unchecked")