translator = (PacketTranslator
) translators.get(clazz);
if (translator != null) {
- translator.translate(packet, session);
+ EventLoop eventLoop = session.getEventLoop();
+ if (eventLoop.inEventLoop()) {
+ translator.translate(packet, session);
+ } else {
+ eventLoop.execute(() -> translator.translate(packet, session));
+ }
return true;
} else {
if ((GeyserConnector.getInstance().getPlatformType() != PlatformType.STANDALONE || !(packet instanceof BedrockPacket)) && !IGNORED_PACKETS.contains(clazz)) {
diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockAnimateTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockAnimateTranslator.java
index 6e97a5182..0bae5261c 100644
--- a/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockAnimateTranslator.java
+++ b/connector/src/main/java/org/geysermc/connector/network/translators/bedrock/BedrockAnimateTranslator.java
@@ -48,7 +48,7 @@ public class BedrockAnimateTranslator extends PacketTranslator