mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Fallback to colorless death message if problems parsing json components
This commit is contained in:
@@ -5,15 +5,32 @@ 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 ef6ac7929..d72ebc262 100644
|
||||
index ef6ac7929..2c45fd0b7 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
||||
@@ -662,7 +662,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -662,7 +662,24 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
|
||||
IChatBaseComponent defaultMessage = this.getCombatTracker().getDeathMessage();
|
||||
|
||||
- String deathmessage = defaultMessage.getString();
|
||||
+ String deathmessage = new net.md_5.bungee.api.chat.TextComponent(net.md_5.bungee.chat.ComponentSerializer.parse(IChatBaseComponent.ChatSerializer.componentToJson(defaultMessage))).toLegacyText(); // Purpur
|
||||
+ // 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()) {
|
||||
|
||||
Reference in New Issue
Block a user