From 9d9217485bad5f02311f15cd34abf4c846c12759 Mon Sep 17 00:00:00 2001 From: hypherionmc Date: Sun, 17 Mar 2024 20:41:36 +0200 Subject: [PATCH] [CHANGE] Change hook in point for ChatEvent to fix compat with chat modification mods --- .../ServerGamePacketListenerImplMixin.java | 17 +++++++++++------ gradle.properties | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java index 61326fa..f9524cb 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/mixin/events/ServerGamePacketListenerImplMixin.java @@ -13,18 +13,23 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -@Mixin(ServerGamePacketListenerImpl.class) +@Mixin(value = ServerGamePacketListenerImpl.class, priority = Integer.MIN_VALUE) public class ServerGamePacketListenerImplMixin { - @Shadow public ServerPlayer player; + @Shadow + public ServerPlayer player; - @Inject(method = "handleChat(Lnet/minecraft/server/network/TextFilter$FilteredText;)V", at = @At("HEAD"), cancellable = true) - private void injectChatEvent(TextFilter.FilteredText filteredText, CallbackInfo ci) { - Component message = new TextComponent(filteredText.getRaw()); + @Inject( + method = "handleChat(Lnet/minecraft/server/network/TextFilter$FilteredText;)V", + at = @At(value = "INVOKE", target = "Lnet/minecraft/server/network/TextFilter$FilteredText;getFiltered()Ljava/lang/String;"), + cancellable = true + ) + private void injectChatEvent(TextFilter.FilteredText arg, CallbackInfo ci) { + Component message = new TextComponent(arg.getRaw()); if (message.getString().startsWith("/")) return; - CraterServerChatEvent event = new CraterServerChatEvent(this.player, message.getString(), message); + CraterServerChatEvent event = new CraterServerChatEvent(this.player, arg.getFiltered(), message); CraterEventBus.INSTANCE.postEvent(event); if (event.wasCancelled()) ci.cancel(); diff --git a/gradle.properties b/gradle.properties index 7fba4c6..3e9ebcf 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ #Project version_major=1 version_minor=1 -version_patch=1 +version_patch=2 project_group=com.hypherionmc.craterlib #Mod