diff --git a/paper-server/src/main/java/io/papermc/paper/adventure/providers/DataComponentValueConverterProviderImpl.java b/paper-server/src/main/java/io/papermc/paper/adventure/providers/DataComponentValueConverterProviderImpl.java index ee2076fd0..f0b4083d3 100644 --- a/paper-server/src/main/java/io/papermc/paper/adventure/providers/DataComponentValueConverterProviderImpl.java +++ b/paper-server/src/main/java/io/papermc/paper/adventure/providers/DataComponentValueConverterProviderImpl.java @@ -76,6 +76,20 @@ public class DataComponentValueConverterProviderImpl implements DataComponentVal throw new IllegalArgumentException(e); } } + ), + DataComponentValueConverterRegistry.Conversion.convert( + DataComponentValue.TagSerializable.class, + GsonDataComponentValue.class, + (key, tagSerializable) -> { + Tag decodedSnbt; + try { + decodedSnbt = tagSerializable.asBinaryTag().get(PaperAdventure.NBT_CODEC); + } catch (CommandSyntaxException e) { + throw new IllegalArgumentException("Unable to parse SNBT value", e); + } + + return GsonDataComponentValue.gsonDataComponentValue(NbtOps.INSTANCE.convertTo(JsonOps.INSTANCE, decodedSnbt)); + } ) ); }