fix serializing TextColor with name

This commit is contained in:
Jake Potrebic 2023-12-05 20:56:02 -08:00
parent 29e137669e
commit cc78c7f5f5
No known key found for this signature in database
GPG key ID: 27CC63F7CBC866C7

View file

@ -11,10 +11,10 @@ public net.minecraft.network.chat.contents.TranslatableContents filterAllowedArg
diff --git a/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java b/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java
new file mode 100644
index 0000000000000000000000000000000000000000..6f5a2bdf50de97e6180b42cf988c3e98385a99ee
index 0000000000000000000000000000000000000000..db13894e2710b933f69f3adaa7e728461e3cf049
--- /dev/null
+++ b/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java
@@ -0,0 +1,271 @@
@@ -0,0 +1,277 @@
+package io.papermc.paper.adventure;
+
+import com.mojang.datafixers.util.Either;
@ -73,7 +73,13 @@ index 0000000000000000000000000000000000000000..6f5a2bdf50de97e6180b42cf988c3e98
+ final @Nullable NamedTextColor value = NamedTextColor.NAMES.value(s);
+ return value != null ? DataResult.success(value) : DataResult.error(() -> "Cannot convert " + s + " to adventure NamedTextColor");
+ }
+ }, TextColor::asHexString);
+ }, textColor -> {
+ if (textColor instanceof NamedTextColor named) {
+ return NamedTextColor.NAMES.keyOrThrow(named);
+ } else {
+ return textColor.asHexString();
+ }
+ });
+
+ private static final Codec<Key> KEY_CODEC = Codec.STRING.comapFlatMap(s -> {
+ return Key.parseable(s) ? DataResult.success(Key.key(s)) : DataResult.error(() -> "Cannot convert " + s + " to adventure Key");