From b2124681d026d24f75f156983e400018b1ebc4a8 Mon Sep 17 00:00:00 2001 From: Florian Brandt Date: Fri, 2 Oct 2026 23:14:39 +0000 Subject: [PATCH] Don't fail component parsing on unparseable hex colors (#3029) * :bug: fix(gson): Drop unparseable hex colors instead of failing components Vanilla text components may carry hex colors (#RRGGBB) since 1.16, which text3 cannot represent. The old TextColorWrapper deserialization threw JsonParseException and the whole component parse failed. This drops the unparseable color instead, keeping the text content. Named colors still parse as before. * :bug: fix(gson): Log dropped colors at debug level, add license header Addresses review feedback on #3029: keep the parse-failure stacktrace available at debug level, and add the GPL header to the new test class. (cherry picked from commit 1fcbef53918675e3edfdda2cd34214232fe9bf10) --- .../text/serializer/gson/StyleSerializer.java | 25 +++++++--- .../serializer/gson/StyleSerializerTest.java | 49 +++++++++++++++++++ 2 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 worldedit-core/src/test/java/com/sk89q/worldedit/util/formatting/text/serializer/gson/StyleSerializerTest.java diff --git a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/text/serializer/gson/StyleSerializer.java b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/text/serializer/gson/StyleSerializer.java index 5209ced100..7b98069dbc 100644 --- a/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/text/serializer/gson/StyleSerializer.java +++ b/worldedit-core/src/main/java/com/sk89q/worldedit/util/formatting/text/serializer/gson/StyleSerializer.java @@ -35,12 +35,14 @@ import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.extension.platform.Capability; import com.sk89q.worldedit.internal.Constants; +import com.sk89q.worldedit.internal.util.LogManagerCompat; import com.sk89q.worldedit.util.formatting.text.Component; import com.sk89q.worldedit.util.formatting.text.event.ClickEvent; import com.sk89q.worldedit.util.formatting.text.event.HoverEvent; import com.sk89q.worldedit.util.formatting.text.format.Style; import com.sk89q.worldedit.util.formatting.text.format.TextColor; import com.sk89q.worldedit.util.formatting.text.format.TextDecoration; +import org.apache.logging.log4j.Logger; import java.lang.reflect.Type; @@ -48,6 +50,8 @@ public class StyleSerializer implements JsonDeserializer