diff --git a/patches/server/0288-Chat-Preview-API.patch b/patches/server/0288-Chat-Preview-API.patch index 44bac65dd..97c25d101 100644 --- a/patches/server/0288-Chat-Preview-API.patch +++ b/patches/server/0288-Chat-Preview-API.patch @@ -5,28 +5,30 @@ Subject: [PATCH] Chat Preview API diff --git a/src/main/java/net/minecraft/network/chat/ChatDecorator.java b/src/main/java/net/minecraft/network/chat/ChatDecorator.java -index d07bb2d1f365cb7c92a1252b83210fa38cbeeb1d..89bed23716b21fe6e1079fa9fc5d13688c2fee04 100644 +index d07bb2d1f365cb7c92a1252b83210fa38cbeeb1d..d307fd9656c2067eb70c5031dd250dc8aabfd663 100644 --- a/src/main/java/net/minecraft/network/chat/ChatDecorator.java +++ b/src/main/java/net/minecraft/network/chat/ChatDecorator.java -@@ -8,6 +8,16 @@ import net.minecraft.server.network.FilteredText; +@@ -8,6 +8,18 @@ import net.minecraft.server.network.FilteredText; @FunctionalInterface public interface ChatDecorator { ChatDecorator PLAIN = (sender, message) -> { + // Purpur start -+ net.kyori.adventure.text.Component adventureComponent = io.papermc.paper.adventure.PaperAdventure.asAdventure(message); -+ org.purpurmc.purpur.event.player.PlayerPreviewChatEvent previewEvent = new org.purpurmc.purpur.event.player.PlayerPreviewChatEvent(sender.getBukkitEntity(), "", adventureComponent); -+ if (!previewEvent.callEvent()) { -+ return CompletableFuture.completedFuture(null); -+ } -+ if (!previewEvent.getQuery().equals(adventureComponent)) { -+ return CompletableFuture.completedFuture(io.papermc.paper.adventure.PaperAdventure.asVanilla(previewEvent.getQuery())); ++ if (sender != null) { ++ net.kyori.adventure.text.Component adventureComponent = io.papermc.paper.adventure.PaperAdventure.asAdventure(message); ++ org.purpurmc.purpur.event.player.PlayerPreviewChatEvent previewEvent = new org.purpurmc.purpur.event.player.PlayerPreviewChatEvent(sender.getBukkitEntity(), "", adventureComponent); ++ if (!previewEvent.callEvent()) { ++ return CompletableFuture.completedFuture(null); ++ } ++ if (!previewEvent.getQuery().equals(adventureComponent)) { ++ return CompletableFuture.completedFuture(io.papermc.paper.adventure.PaperAdventure.asVanilla(previewEvent.getQuery())); ++ } + } + // Purpur end return CompletableFuture.completedFuture(message); }; diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 3bb51f34be4341c991487a78d8793f074ffdcba4..d42a3a2ae2ed00f868d73ea0a0e90301301db380 100644 +index 3a4c6c91222ad6c60d1263ca7f912b1e3a85c164..ac527a253e2c238099cb3755fe5ab4855289d6f5 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -2512,7 +2512,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser