Use adventure serializer when serializing an adventure component in a codec (#8967)
This commit is contained in:
@@ -91,6 +91,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ return this.deepConverted().getVisualOrderText();
|
||||
+ }
|
||||
+
|
||||
+ public Component adventure$component() {
|
||||
+ return this.adventure;
|
||||
+ }
|
||||
+
|
||||
+ public static class Serializer implements JsonSerializer<AdventureComponent> {
|
||||
+ @Override
|
||||
+ public JsonElement serialize(final AdventureComponent src, final Type type, final JsonSerializationContext context) {
|
||||
@@ -2565,6 +2569,22 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
return message.hasSignature() && !message.hasExpiredServer(Instant.now());
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/util/ExtraCodecs.java b/src/main/java/net/minecraft/util/ExtraCodecs.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/util/ExtraCodecs.java
|
||||
+++ b/src/main/java/net/minecraft/util/ExtraCodecs.java
|
||||
@@ -0,0 +0,0 @@ public class ExtraCodecs {
|
||||
}
|
||||
}, (text) -> {
|
||||
try {
|
||||
+ // Paper start
|
||||
+ if (text instanceof io.papermc.paper.adventure.AdventureComponent adventureComponent) {
|
||||
+ return DataResult.success(net.kyori.adventure.text.serializer.gson.GsonComponentSerializer.gson().serializeToTree(adventureComponent.adventure$component()));
|
||||
+ }
|
||||
+ // Paper end
|
||||
return DataResult.success(Component.Serializer.toJsonTree(text));
|
||||
} catch (IllegalArgumentException var2) {
|
||||
return DataResult.error(var2::getMessage);
|
||||
diff --git a/src/main/java/net/minecraft/world/BossEvent.java b/src/main/java/net/minecraft/world/BossEvent.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/world/BossEvent.java
|
||||
|
||||
Reference in New Issue
Block a user