Handle edge cases when converting legacy components (#3896)

This commit is contained in:
EnZaXD 2024-05-30 22:55:03 +02:00 committed by GitHub
parent d4034792c4
commit 2a088c08ed
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -155,18 +155,16 @@ public final class ComponentUtil {
public static String legacyToJsonString(final String message, final boolean itemData) {
final ATextComponent component = LegacyStringDeserializer.parse(message, true);
if (itemData && hasStyle(component)) {
component.setParentStyle(new Style().setItalic(false));
if (itemData) {
TextUtils.iterateAll(component, c -> {
if (!c.getStyle().isEmpty()) {
c.setParentStyle(new Style().setItalic(false));
}
});
}
return SerializerVersion.V1_12.toString(component);
}
public static boolean hasStyle(final ATextComponent component) {
final boolean[] hasStyle = {false};
TextUtils.iterateAll(component, c -> hasStyle[0] |= !c.getStyle().isEmpty());
return hasStyle[0];
}
public static String jsonToLegacy(final String value) {
return TextComponentSerializer.V1_12.deserializeReader(value).asLegacyFormatString();
}