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

Fixup ComponentUtil#trimStrings detection (#3888)

Dieser Commit ist enthalten in:
EnZaXD 2024-05-29 10:21:50 +02:00 committet von GitHub
Ursprung d8aa3c4b39
Commit af393c564f
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: B5690EEEBB952194

Datei anzeigen

@ -23,6 +23,7 @@ import com.viaversion.nbt.tag.CompoundTag;
import com.viaversion.nbt.tag.StringTag; import com.viaversion.nbt.tag.StringTag;
import com.viaversion.nbt.tag.Tag; import com.viaversion.nbt.tag.Tag;
import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.Via;
import java.nio.charset.StandardCharsets;
import java.util.logging.Level; import java.util.logging.Level;
import net.lenni0451.mcstructs.text.ATextComponent; import net.lenni0451.mcstructs.text.ATextComponent;
import net.lenni0451.mcstructs.text.Style; import net.lenni0451.mcstructs.text.Style;
@ -38,6 +39,8 @@ import org.checkerframework.checker.nullness.qual.Nullable;
*/ */
public final class ComponentUtil { public final class ComponentUtil {
private static final int MAX_UNSIGNED_SHORT = 65535;
public static JsonObject emptyJsonComponent() { public static JsonObject emptyJsonComponent() {
return plainToJson(""); return plainToJson("");
} }
@ -83,10 +86,10 @@ public final class ComponentUtil {
return null; return null;
} }
return TagUtil.handleDeep(input, (key, tag) -> { return TagUtil.handleDeep(input, (key, tag) -> {
if (tag instanceof StringTag) { if (tag instanceof StringTag stringTag) {
final String value = ((StringTag) tag).getValue(); final byte[] value = stringTag.getValue().getBytes(StandardCharsets.UTF_8);
if (value.length() > Short.MAX_VALUE) { if (value.length > MAX_UNSIGNED_SHORT) {
((StringTag) tag).setValue("{}"); stringTag.setValue("{}");
} }
} }
return tag; return tag;