handle events in a separate thread
This commit is contained in:
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")
|
||||||
|
|||||||
Reference in new issue
Block a user