28
28
import net .kyori .adventure .platform .facet .FacetComponentFlattener ;
29
29
import net .kyori .adventure .text .flattener .ComponentFlattener ;
30
30
import net .kyori .adventure .text .serializer .gson .GsonComponentSerializer ;
31
- import net .kyori .adventure .text .serializer .gson .legacyimpl .NBTLegacyHoverEventSerializer ;
31
+ import net .kyori .adventure .text .serializer .json .JSONOptions ;
32
+ import net .kyori .adventure .text .serializer .json .legacyimpl .NBTLegacyHoverEventSerializer ;
32
33
import net .kyori .adventure .text .serializer .legacy .LegacyComponentSerializer ;
33
34
import org .bukkit .Bukkit ;
34
35
import org .bukkit .Material ;
@@ -46,6 +47,7 @@ public final class BukkitComponentSerializer {
46
47
private BukkitComponentSerializer () {
47
48
}
48
49
50
+ private static final boolean IS_1_13 = findEnum (Material .class , "BLUE_ICE" ) != null ;
49
51
private static final boolean IS_1_16 = findEnum (Material .class , "NETHERITE_PICKAXE" ) != null ;
50
52
51
53
private static final Collection <FacetComponentFlattener .Translator <Server >> TRANSLATORS = Facet .of (
@@ -58,25 +60,29 @@ private BukkitComponentSerializer() {
58
60
59
61
static {
60
62
FLATTENER = FacetComponentFlattener .get (Bukkit .getServer (), TRANSLATORS );
63
+
64
+ if (IS_1_13 ) {
65
+ GSON_SERIALIZER = GsonComponentSerializer .builder ()
66
+ .options (JSONOptions .byDataVersion ().at (Bukkit .getUnsafe ().getDataVersion ()))
67
+ .build ();
68
+ } else {
69
+ GSON_SERIALIZER = GsonComponentSerializer .builder ()
70
+ .legacyHoverEventSerializer (NBTLegacyHoverEventSerializer .get ())
71
+ .options (JSONOptions .byDataVersion ().at (0 ))
72
+ .build ();
73
+ }
74
+
61
75
if (IS_1_16 ) {
62
76
LEGACY_SERIALIZER = LegacyComponentSerializer .builder ()
63
77
.hexColors ()
64
78
.useUnusualXRepeatedCharacterHexFormat ()
65
79
.flattener (FLATTENER )
66
80
.build ();
67
- GSON_SERIALIZER = GsonComponentSerializer .builder ()
68
- .legacyHoverEventSerializer (NBTLegacyHoverEventSerializer .get ())
69
- .build ();
70
81
} else {
71
82
LEGACY_SERIALIZER = LegacyComponentSerializer .builder ()
72
83
.character (LegacyComponentSerializer .SECTION_CHAR )
73
84
.flattener (FLATTENER )
74
85
.build ();
75
- GSON_SERIALIZER = GsonComponentSerializer .builder ()
76
- .legacyHoverEventSerializer (NBTLegacyHoverEventSerializer .get ())
77
- .emitLegacyHoverEvent ()
78
- .downsampleColors ()
79
- .build ();
80
86
}
81
87
}
82
88
0 commit comments