From 1f28e6eeb2d105aaa704e3cee864f5e5a6afa58c Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 21 May 2021 18:08:18 -0700 Subject: [PATCH] Fix default ChatRenderer when no plugins are installed (#5702) --- Spigot-API-Patches/0005-Adventure.patch | 16 ++++++++++++---- Spigot-Server-Patches/0010-Adventure.patch | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Spigot-API-Patches/0005-Adventure.patch b/Spigot-API-Patches/0005-Adventure.patch index 35a3642f5..fd22ab6cd 100644 --- a/Spigot-API-Patches/0005-Adventure.patch +++ b/Spigot-API-Patches/0005-Adventure.patch @@ -174,10 +174,10 @@ index 0000000000000000000000000000000000000000..ba784ab037adfd37b01b222ea33abea0 +} diff --git a/src/main/java/io/papermc/paper/chat/ChatRenderer.java b/src/main/java/io/papermc/paper/chat/ChatRenderer.java new file mode 100644 -index 0000000000000000000000000000000000000000..ec50931f02d8be3e32aa6bc8a2204a4f2e4cabb4 +index 0000000000000000000000000000000000000000..85fd5d6777b53bab09cc54c360bb75141635bdd3 --- /dev/null +++ b/src/main/java/io/papermc/paper/chat/ChatRenderer.java -@@ -0,0 +1,67 @@ +@@ -0,0 +1,75 @@ +package io.papermc.paper.chat; + +import net.kyori.adventure.audience.Audience; @@ -191,8 +191,6 @@ index 0000000000000000000000000000000000000000..ec50931f02d8be3e32aa6bc8a2204a4f + */ +@FunctionalInterface +public interface ChatRenderer { -+ ChatRenderer DEFAULT = viewerUnaware((source, sourceDisplayName, message) -> Component.translatable("chat.type.text", sourceDisplayName, message)); -+ + /** + * Renders a chat message. This will be called once for each receiving {@link Audience}. + * @@ -206,6 +204,16 @@ index 0000000000000000000000000000000000000000..ec50931f02d8be3e32aa6bc8a2204a4f + Component render(@NotNull Player source, @NotNull Component sourceDisplayName, @NotNull Component message, @NotNull Audience viewer); + + /** ++ * Create a new instance of the default {@link ChatRenderer}. ++ * ++ * @return a new {@link ChatRenderer} ++ */ ++ @NotNull ++ static ChatRenderer defaultRenderer() { ++ return viewerUnaware((source, sourceDisplayName, message) -> Component.translatable("chat.type.text", sourceDisplayName, message)); ++ } ++ ++ /** + * Creates a new viewer-unaware {@link ChatRenderer}, which will render the chat message a single time, + * displaying the same rendered message to every viewing {@link Audience}. + * diff --git a/Spigot-Server-Patches/0010-Adventure.patch b/Spigot-Server-Patches/0010-Adventure.patch index 8af26635b..aa9ca7c20 100644 --- a/Spigot-Server-Patches/0010-Adventure.patch +++ b/Spigot-Server-Patches/0010-Adventure.patch @@ -105,7 +105,7 @@ index 0000000000000000000000000000000000000000..89597b4a3064c3c6001c7e927a848ee7 +} diff --git a/src/main/java/io/papermc/paper/adventure/ChatProcessor.java b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java new file mode 100644 -index 0000000000000000000000000000000000000000..bab8156acf87731ccdc841de5b341176ddedaae6 +index 0000000000000000000000000000000000000000..e7ca0a44919ad052fa2ef279b4cd8989f8969a20 --- /dev/null +++ b/src/main/java/io/papermc/paper/adventure/ChatProcessor.java @@ -0,0 +1,213 @@ @@ -189,7 +189,7 @@ index 0000000000000000000000000000000000000000..bab8156acf87731ccdc841de5b341176 + // no legacy events called, all nice and fresh! + () -> { + this.processModern( -+ ChatRenderer.DEFAULT, ++ ChatRenderer.defaultRenderer(), + new LazyPlayerSet(this.server), + Component.text(this.message).replaceText(URL_REPLACEMENT_CONFIG), + false