3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-12-27 08:30:09 +01:00

Fixup ComponentUtil#legacyToJsonString behavior on items with styles (#3868)

Dieser Commit ist enthalten in:
EnZaXD 2024-05-21 11:30:57 +02:00 committet von GitHub
Ursprung 659bee771b
Commit 9547cf160d
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194

Datei anzeigen

@ -30,6 +30,7 @@ import net.lenni0451.mcstructs.text.events.hover.AHoverEvent;
import net.lenni0451.mcstructs.text.events.hover.impl.TextHoverEvent; import net.lenni0451.mcstructs.text.events.hover.impl.TextHoverEvent;
import net.lenni0451.mcstructs.text.serializer.LegacyStringDeserializer; import net.lenni0451.mcstructs.text.serializer.LegacyStringDeserializer;
import net.lenni0451.mcstructs.text.serializer.TextComponentSerializer; import net.lenni0451.mcstructs.text.serializer.TextComponentSerializer;
import net.lenni0451.mcstructs.text.utils.TextUtils;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
/** /**
@ -151,12 +152,18 @@ public final class ComponentUtil {
public static String legacyToJsonString(final String message, final boolean itemData) { public static String legacyToJsonString(final String message, final boolean itemData) {
final ATextComponent component = LegacyStringDeserializer.parse(message, true); final ATextComponent component = LegacyStringDeserializer.parse(message, true);
if (itemData) { if (itemData && hasStyle(component)) {
component.setParentStyle(new Style().setItalic(false)); component.setParentStyle(new Style().setItalic(false));
} }
return SerializerVersion.V1_12.toString(component); 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) { public static String jsonToLegacy(final String value) {
return TextComponentSerializer.V1_12.deserializeReader(value).asLegacyFormatString(); return TextComponentSerializer.V1_12.deserializeReader(value).asLegacyFormatString();
} }