diff --git a/patches/minecraft/net/minecraft/network/chat/ChatDecorator.java.patch b/patches/minecraft/net/minecraft/network/chat/ChatDecorator.java.patch new file mode 100644 index 0000000000..1b1a569216 --- /dev/null +++ b/patches/minecraft/net/minecraft/network/chat/ChatDecorator.java.patch @@ -0,0 +1,11 @@ +--- a/net/minecraft/network/chat/ChatDecorator.java ++++ b/net/minecraft/network/chat/ChatDecorator.java +@@ -29,7 +_,7 @@ + + default CompletableFuture> m_236964_(@Nullable ServerPlayer p_236965_, FilteredText p_236966_, MessageSignature p_236967_, boolean p_236968_) { + return this.m_236969_(p_236965_, p_236966_).thenApply((p_236956_) -> { +- return PlayerChatMessage.m_237223_(p_236966_, p_236956_, p_236967_, p_236968_); ++ return PlayerChatMessage.filteredSigned(p_236966_, p_236956_, p_236967_, p_236968_, p_236965_); + }); + } + } diff --git a/patches/minecraft/net/minecraft/network/chat/PlayerChatMessage.java.patch b/patches/minecraft/net/minecraft/network/chat/PlayerChatMessage.java.patch index f073c13728..777c5f7a98 100644 --- a/patches/minecraft/net/minecraft/network/chat/PlayerChatMessage.java.patch +++ b/patches/minecraft/net/minecraft/network/chat/PlayerChatMessage.java.patch @@ -1,11 +1,19 @@ --- a/net/minecraft/network/chat/PlayerChatMessage.java +++ b/net/minecraft/network/chat/PlayerChatMessage.java -@@ -27,7 +_,9 @@ +@@ -24,10 +_,17 @@ + } + } + ++ // Forge: Bouncer for the version with player context public static FilteredText m_237223_(FilteredText p_237224_, FilteredText p_237225_, MessageSignature p_237226_, boolean p_237227_) { ++ return filteredSigned(p_237224_, p_237225_, p_237226_, p_237227_, null); ++ } ++ ++ public static FilteredText filteredSigned(FilteredText p_237224_, FilteredText p_237225_, MessageSignature p_237226_, boolean p_237227_, @org.jetbrains.annotations.Nullable ServerPlayer player) { Component component = p_237224_.f_215168_(); Component component1 = p_237225_.f_215168_(); - PlayerChatMessage playerchatmessage = m_237237_(component, component1, p_237226_, p_237227_); -+ Component forgeComponent = net.minecraftforge.common.ForgeHooks.onServerChatEvent(p_237226_, p_237224_.f_215168_().getString(), component); ++ Component forgeComponent = net.minecraftforge.common.ForgeHooks.onServerChatEvent(player, p_237224_.f_215168_().getString(), component); + // TODO: this overrides the signed ("normal") component from the player, but ignores the unsigned component. What do we do here? This is a mess. -C + PlayerChatMessage playerchatmessage = m_237237_(forgeComponent, component1, p_237226_, p_237227_); if (p_237225_.m_215174_()) { diff --git a/src/main/java/net/minecraftforge/event/ServerChatEvent.java b/src/main/java/net/minecraftforge/event/ServerChatEvent.java index d82510f5f9..d7a8d0c22b 100644 --- a/src/main/java/net/minecraftforge/event/ServerChatEvent.java +++ b/src/main/java/net/minecraftforge/event/ServerChatEvent.java @@ -5,7 +5,6 @@ package net.minecraftforge.event; -import net.minecraft.network.chat.MessageSignature; import net.minecraft.network.protocol.game.ServerboundChatPacket; import net.minecraft.server.level.ServerPlayer; import net.minecraft.network.chat.Component; @@ -13,8 +12,8 @@ import net.minecraft.server.network.ServerGamePacketListenerImpl; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.Cancelable; - -import javax.annotation.Nullable; +import net.minecraftforge.eventbus.api.Event; +import org.jetbrains.annotations.Nullable; /** * ServerChatEvent is fired whenever a C01PacketChatMessage is processed.
@@ -34,12 +33,15 @@ import javax.annotation.Nullable; * This event is fired on the {@link MinecraftForge#EVENT_BUS}. **/ @Cancelable -public class ServerChatEvent extends net.minecraftforge.eventbus.api.Event +public class ServerChatEvent extends Event { private final String message; - private final @Nullable String username; - private final @Nullable ServerPlayer player; + @Nullable + private final String username; + @Nullable + private final ServerPlayer player; private Component component; + public ServerChatEvent(@Nullable ServerPlayer player, String message, Component component) { super(); diff --git a/src/main/java/net/minecraftforge/network/HandshakeMessages.java b/src/main/java/net/minecraftforge/network/HandshakeMessages.java index c27c81d561..5d9a2048a1 100644 --- a/src/main/java/net/minecraftforge/network/HandshakeMessages.java +++ b/src/main/java/net/minecraftforge/network/HandshakeMessages.java @@ -11,7 +11,6 @@ import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.fml.ModList; import net.minecraftforge.forgespi.language.IModInfo; -import net.minecraftforge.network.NetworkRegistry; import net.minecraftforge.registries.DataPackRegistriesHooks; import net.minecraftforge.registries.ForgeRegistry; import net.minecraftforge.registries.RegistryManager; @@ -24,11 +23,10 @@ import java.util.Set; import java.util.function.IntSupplier; import java.util.stream.Collectors; -import javax.annotation.Nullable; - import org.apache.commons.lang3.tuple.Pair; import com.google.common.collect.Maps; +import org.jetbrains.annotations.Nullable; public class HandshakeMessages {