From 448f661000ad6d21e46c1b4495154c2458ba8c10 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 19 Jul 2020 15:33:18 -0500 Subject: [PATCH] Duplicate paper's vanilla scoreboard colors patch to sync chat event --- ...s-vanilla-scoreboard-colors-patch-to.patch | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 patches/server/0118-Duplicate-paper-s-vanilla-scoreboard-colors-patch-to.patch diff --git a/patches/server/0118-Duplicate-paper-s-vanilla-scoreboard-colors-patch-to.patch b/patches/server/0118-Duplicate-paper-s-vanilla-scoreboard-colors-patch-to.patch new file mode 100644 index 000000000..62eda722b --- /dev/null +++ b/patches/server/0118-Duplicate-paper-s-vanilla-scoreboard-colors-patch-to.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Sun, 19 Jul 2020 15:30:50 -0500 +Subject: [PATCH] Duplicate paper's vanilla scoreboard colors patch to sync + chat event + + +diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java +index bc4a4ee2c..706ae2bef 100644 +--- a/src/main/java/net/minecraft/server/PlayerConnection.java ++++ b/src/main/java/net/minecraft/server/PlayerConnection.java +@@ -1895,7 +1895,15 @@ public class PlayerConnection implements PacketListenerPlayIn { + return null; + } + +- String message = String.format(queueEvent.getFormat(), queueEvent.getPlayer().getDisplayName(), queueEvent.getMessage()); ++ // Purpur Start - Support for vanilla world scoreboard name coloring (copied from paper's diff below) ++ String displayName = queueEvent.getPlayer().getDisplayName(); ++ if (PlayerConnection.this.player.getWorld().paperConfig.useVanillaScoreboardColoring) { ++ IChatBaseComponent nameFromTeam = ScoreboardTeam.a(PlayerConnection.this.player.getScoreboardTeam(), PlayerConnection.this.player.getDisplayName()); ++ // Explicitly add a RESET here, vanilla uses components for this now... ++ displayName = new net.md_5.bungee.api.chat.TextComponent(net.md_5.bungee.chat.ComponentSerializer.parse(IChatBaseComponent.ChatSerializer.componentToJson(nameFromTeam))).toLegacyText() + org.bukkit.ChatColor.RESET; ++ } ++ String message = String.format(queueEvent.getFormat(), displayName, queueEvent.getMessage()); ++ // Purpur end + PlayerConnection.this.minecraftServer.console.sendMessage(message); + if (((LazyPlayerSet) queueEvent.getRecipients()).isLazy()) { + for (Object player : PlayerConnection.this.minecraftServer.getPlayerList().players) { +@@ -1928,7 +1936,7 @@ public class PlayerConnection implements PacketListenerPlayIn { + // Paper Start - (Meh) Support for vanilla world scoreboard name coloring + String displayName = event.getPlayer().getDisplayName(); + if (this.player.getWorld().paperConfig.useVanillaScoreboardColoring) { +- IChatBaseComponent nameFromTeam = ScoreboardTeam.a(this.player.getScoreboardTeam(), ((CraftPlayer) player).getHandle().getDisplayName()); ++ IChatBaseComponent nameFromTeam = ScoreboardTeam.a(this.player.getScoreboardTeam(), this.player.getDisplayName()); // Purpur - why are we casting bukkit player back to nms player when we already have a nms player... + // Explicitly add a RESET here, vanilla uses components for this now... + displayName = new net.md_5.bungee.api.chat.TextComponent(net.md_5.bungee.chat.ComponentSerializer.parse(IChatBaseComponent.ChatSerializer.componentToJson(nameFromTeam))).toLegacyText() + org.bukkit.ChatColor.RESET; // Purpur + }