Skip to content

Commit b7d37b1

Browse files
committed
Correctly convert lock code to json instead
The normal codec doesn't serialize components to nbt, but to json strings in a string tag...
1 parent 2b840ab commit b7d37b1

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

common/src/main/java/com/viaversion/viaversion/protocols/v1_21to1_21_2/rewriter/BlockItemPacketRewriter1_21_2.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@
6363
import com.viaversion.viaversion.rewriter.BlockRewriter;
6464
import com.viaversion.viaversion.rewriter.SoundRewriter;
6565
import com.viaversion.viaversion.rewriter.StructuredItemRewriter;
66+
import com.viaversion.viaversion.util.ComponentUtil;
6667
import com.viaversion.viaversion.util.Key;
68+
import com.viaversion.viaversion.util.SerializerVersion;
6769
import com.viaversion.viaversion.util.TagUtil;
6870
import com.viaversion.viaversion.util.Unit;
6971
import it.unimi.dsi.fastutil.ints.IntArrayList;
@@ -565,15 +567,11 @@ public static void updateItemData(final Item item) {
565567
dataContainer.replace(StructuredDataKey.FIRE_RESISTANT, StructuredDataKey.DAMAGE_RESISTANT, fireResistant -> new DamageResistant("minecraft:is_fire"));
566568
dataContainer.replace(StructuredDataKey.LOCK, tag -> {
567569
final String lock = ((StringTag) tag).getValue();
568-
if (lock.isBlank()) {
569-
// Previously ignored empty values since the data was arbitrary, custom_name doesn't accept empty values
570-
return null;
571-
}
572-
573570
final CompoundTag predicateTag = new CompoundTag();
574571
final CompoundTag itemComponentsTag = new CompoundTag();
575572
predicateTag.put("components", itemComponentsTag);
576-
itemComponentsTag.put("custom_name", tag);
573+
// As json here...
574+
itemComponentsTag.putString("custom_name", ComponentUtil.plainToJson(lock).toString());
577575
return predicateTag;
578576
});
579577
}
@@ -584,7 +582,9 @@ public static void downgradeItemData(final Item item) {
584582
final CompoundTag predicateTag = (CompoundTag) lock;
585583
final CompoundTag itemComponentsTag = predicateTag.getCompoundTag("components");
586584
if (itemComponentsTag != null) {
587-
return TagUtil.getNamespacedStringTag(itemComponentsTag, "custom_name");
585+
// Back from json in the string tag to plain text
586+
final StringTag customName = TagUtil.getNamespacedStringTag(itemComponentsTag, "custom_name");
587+
return new StringTag(SerializerVersion.V1_20_5.toComponent(customName.getValue()).asUnformattedString());
588588
}
589589
return null;
590590
});

0 commit comments

Comments
 (0)