Skip to content

Commit 388f38b

Browse files
Store data version in serialized item stack compound
1 parent 72229b3 commit 388f38b

4 files changed

Lines changed: 24 additions & 4 deletions

File tree

inventoryaccess/inventory-access-r19/src/main/java/xyz/xenondevs/inventoryaccess/r19/ItemUtilsImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack
3333
try {
3434
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
3535
CompoundTag nbt = (CompoundTag) nmsStack.save(CraftRegistry.getMinecraftRegistry(), new CompoundTag());
36+
nbt.putInt("DataVersion", CraftMagicNumbers.INSTANCE.getDataVersion());
3637

3738
if (compressed) {
3839
NbtIo.writeCompressed(nbt, outputStream);
@@ -64,11 +65,15 @@ public org.bukkit.inventory.ItemStack deserializeItemStack(@NotNull InputStream
6465
nbt = NbtIo.read(dataIn);
6566
}
6667

68+
int dataVersion = nbt.getInt("DataVersion");
69+
if (dataVersion == 0)
70+
dataVersion = 3700;
71+
6772
Dynamic<Tag> converted = DataFixers.getDataFixer()
6873
.update(
6974
References.ITEM_STACK,
7075
new Dynamic<>(NbtOps.INSTANCE, nbt),
71-
3700, CraftMagicNumbers.INSTANCE.getDataVersion()
76+
dataVersion, CraftMagicNumbers.INSTANCE.getDataVersion()
7277
);
7378

7479
ItemStack itemStack = ItemStack.parse(

inventoryaccess/inventory-access-r20/src/main/java/xyz/xenondevs/inventoryaccess/r20/ItemUtilsImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack
3333
try {
3434
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
3535
CompoundTag nbt = (CompoundTag) nmsStack.save(CraftRegistry.getMinecraftRegistry(), new CompoundTag());
36+
nbt.putInt("DataVersion", CraftMagicNumbers.INSTANCE.getDataVersion());
3637

3738
if (compressed) {
3839
NbtIo.writeCompressed(nbt, outputStream);
@@ -64,11 +65,15 @@ public org.bukkit.inventory.ItemStack deserializeItemStack(@NotNull InputStream
6465
nbt = NbtIo.read(dataIn);
6566
}
6667

68+
int dataVersion = nbt.getInt("DataVersion");
69+
if (dataVersion == 0)
70+
dataVersion = 3700;
71+
6772
Dynamic<Tag> converted = DataFixers.getDataFixer()
6873
.update(
6974
References.ITEM_STACK,
7075
new Dynamic<>(NbtOps.INSTANCE, nbt),
71-
3700, CraftMagicNumbers.INSTANCE.getDataVersion()
76+
dataVersion, CraftMagicNumbers.INSTANCE.getDataVersion()
7277
);
7378

7479
ItemStack itemStack = ItemStack.parse(

inventoryaccess/inventory-access-r21/src/main/java/xyz/xenondevs/inventoryaccess/r21/ItemUtilsImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack
3333
try {
3434
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
3535
CompoundTag nbt = (CompoundTag) nmsStack.save(CraftRegistry.getMinecraftRegistry(), new CompoundTag());
36+
nbt.putInt("DataVersion", CraftMagicNumbers.INSTANCE.getDataVersion());
3637

3738
if (compressed) {
3839
NbtIo.writeCompressed(nbt, outputStream);
@@ -64,11 +65,15 @@ public org.bukkit.inventory.ItemStack deserializeItemStack(@NotNull InputStream
6465
nbt = NbtIo.read(dataIn);
6566
}
6667

68+
int dataVersion = nbt.getInt("DataVersion");
69+
if (dataVersion == 0)
70+
dataVersion = 3700;
71+
6772
Dynamic<Tag> converted = DataFixers.getDataFixer()
6873
.update(
6974
References.ITEM_STACK,
7075
new Dynamic<>(NbtOps.INSTANCE, nbt),
71-
3700, CraftMagicNumbers.INSTANCE.getDataVersion()
76+
dataVersion, CraftMagicNumbers.INSTANCE.getDataVersion()
7277
);
7378

7479
ItemStack itemStack = ItemStack.parse(

inventoryaccess/inventory-access-r22/src/main/java/xyz/xenondevs/inventoryaccess/r22/ItemUtilsImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public void serializeItemStack(org.bukkit.inventory.@NotNull ItemStack itemStack
3333
try {
3434
ItemStack nmsStack = CraftItemStack.asNMSCopy(itemStack);
3535
CompoundTag nbt = (CompoundTag) nmsStack.save(CraftRegistry.getMinecraftRegistry(), new CompoundTag());
36+
nbt.putInt("DataVersion", CraftMagicNumbers.INSTANCE.getDataVersion());
3637

3738
if (compressed) {
3839
NbtIo.writeCompressed(nbt, outputStream);
@@ -64,11 +65,15 @@ public org.bukkit.inventory.ItemStack deserializeItemStack(@NotNull InputStream
6465
nbt = NbtIo.read(dataIn);
6566
}
6667

68+
int dataVersion = nbt.getInt("DataVersion");
69+
if (dataVersion == 0)
70+
dataVersion = 3700;
71+
6772
Dynamic<Tag> converted = DataFixers.getDataFixer()
6873
.update(
6974
References.ITEM_STACK,
7075
new Dynamic<>(NbtOps.INSTANCE, nbt),
71-
3700, CraftMagicNumbers.INSTANCE.getDataVersion()
76+
dataVersion, CraftMagicNumbers.INSTANCE.getDataVersion()
7277
);
7378

7479
ItemStack itemStack = ItemStack.parse(

0 commit comments

Comments
 (0)