From b4aab1e7605c44b61a0a4d7d1ec9db13146743e3 Mon Sep 17 00:00:00 2001 From: hypherionmc Date: Sun, 17 Mar 2024 20:35:59 +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, 14 insertions(+), 5 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 27760be..05546bb 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 @@ -2,24 +2,33 @@ package com.hypherionmc.craterlib.mixin.events; import com.hypherionmc.craterlib.api.event.server.CraterServerChatEvent; import com.hypherionmc.craterlib.core.event.CraterEventBus; +import net.minecraft.network.chat.Component; import net.minecraft.network.chat.PlayerChatMessage; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.network.FilteredText; import net.minecraft.server.network.ServerGamePacketListenerImpl; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; 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; -@Mixin(ServerGamePacketListenerImpl.class) +import java.util.concurrent.CompletableFuture; + +@Mixin(value = ServerGamePacketListenerImpl.class, priority = Integer.MIN_VALUE) public class ServerGamePacketListenerImplMixin { @Shadow public ServerPlayer player; - @Inject(method = "broadcastChatMessage", at = @At("HEAD"), cancellable = true) - private void injectChatEvent(PlayerChatMessage chatMessage, CallbackInfo ci) { - CraterServerChatEvent event = new CraterServerChatEvent(this.player, chatMessage.serverContent().getString(), chatMessage.serverContent()); + @Inject( + method = "lambda$handleChat$9", + at = @At("HEAD"), + cancellable = true + ) + private void injectChatEvent(PlayerChatMessage arg, CallbackInfoReturnable ci) { + CraterServerChatEvent event = new CraterServerChatEvent(this.player, arg.serverContent().getString(), arg.serverContent()); CraterEventBus.INSTANCE.postEvent(event); if (event.wasCancelled()) ci.cancel(); diff --git a/gradle.properties b/gradle.properties index e4e4b46..87db642 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