--- a/Fabric/src/main/java/com/hypherionmc/craterlib/mixin/ServerGamePacketListenerImplMixin.java
+++ b/Fabric/src/main/java/com/hypherionmc/craterlib/mixin/ServerGamePacketListenerImplMixin.java
@@ -14,6 +14,10 @@
 import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.Inject;
 import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
+
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Executor;
 
 @Mixin(value = ServerGamePacketListenerImpl.class, priority = Integer.MIN_VALUE)
 public class ServerGamePacketListenerImplMixin {
@@ -22,16 +26,17 @@
     public ServerPlayer player;
 
     @Inject(
-            method = "lambda$handleChat$5",
+            method = "lambda$handleChat$9",
             at = @At("HEAD"),
             cancellable = true
     )
-    private void injectChatEvent(PlayerChatMessage arg, Component arg2, FilteredText arg3, CallbackInfo ci) {
-        Component finalcomp = arg2 == null ? arg.decoratedContent() : arg2;
-        CraterServerChatEvent event = new CraterServerChatEvent(BridgedPlayer.of(this.player), finalcomp.getString(), ChatUtils.mojangToAdventure(finalcomp));
+    private void injectChatEvent(CompletableFuture<FilteredText> completableFuture, CompletableFuture<Component> completableFuture2, PlayerChatMessage arg, Executor executor, CallbackInfoReturnable<CompletableFuture> cir) {
+        Component comp2 = completableFuture2.join();
+        Component finalArg = comp2 == null ? arg.decoratedContent() : comp2;
+        CraterServerChatEvent event = new CraterServerChatEvent(BridgedPlayer.of(this.player), finalArg.getString(), ChatUtils.mojangToAdventure(finalArg));
         CraterEventBus.INSTANCE.postEvent(event);
         if (event.wasCancelled())
-            ci.cancel();
+            cir.cancel();
     }
 
 }
