From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 19 Jul 2020 14:08:33 -0500 Subject: [PATCH] Fix death message colors diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java index ba8ce820fc..0e192e2e5a 100644 --- a/src/main/java/net/minecraft/server/EntityPlayer.java +++ b/src/main/java/net/minecraft/server/EntityPlayer.java @@ -663,7 +663,24 @@ public class EntityPlayer extends EntityHuman implements ICrafting { IChatBaseComponent defaultMessage = this.getCombatTracker().getDeathMessage(); - String deathmessage = defaultMessage.getString(); + // Purpur start + String deathmessage; + String json = ""; + try { + json = IChatBaseComponent.ChatSerializer.componentToJson(defaultMessage); + net.md_5.bungee.api.chat.BaseComponent[] parsed = net.md_5.bungee.chat.ComponentSerializer.parse(json); + net.md_5.bungee.api.chat.TextComponent wrapped = new net.md_5.bungee.api.chat.TextComponent(parsed); + deathmessage = wrapped.toLegacyText(); + } catch (Exception e) { + deathmessage = defaultMessage.getString(); + MinecraftServer.LOGGER.warn("There was a problem processing the death message json component!"); + MinecraftServer.LOGGER.warn("We have fallen back to legacy colorless death message to prevent real errors"); + MinecraftServer.LOGGER.warn("Please report this to Purpur!"); + MinecraftServer.LOGGER.warn("JSON: " + json); + MinecraftServer.LOGGER.warn("The following error describes what went wrong:"); + e.printStackTrace(); + } + // Purpur end org.bukkit.event.entity.PlayerDeathEvent event = CraftEventFactory.callPlayerDeathEvent(this, loot, deathmessage, keepInventory); // Paper start - cancellable death event if (event.isCancelled()) {