Duplicate paper's vanilla scoreboard colors patch to sync chat event

This commit is contained in:
William Blake Galbreath
2020-07-19 15:33:18 -05:00
parent a059eac358
commit 448f661000

View File

@@ -0,0 +1,37 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
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
}