diff --git a/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlockEntity.java b/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlockEntity.java index 858b6a1a3..af3136129 100644 --- a/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlockEntity.java +++ b/projects/common/src/main/java/dan200/computercraft/shared/turtle/blocks/TurtleBlockEntity.java @@ -24,10 +24,9 @@ import net.minecraft.core.Direction; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; -import net.minecraft.nbt.ListTag; -import net.minecraft.nbt.Tag; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.ContainerHelper; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; @@ -136,17 +135,8 @@ public void loadServer(CompoundTag nbt) { super.loadServer(nbt); // Read inventory - var nbttaglist = nbt.getList("Items", Tag.TAG_COMPOUND); - inventory.clear(); - inventorySnapshot.clear(); - for (var i = 0; i < nbttaglist.size(); i++) { - var tag = nbttaglist.getCompound(i); - var slot = tag.getByte("Slot") & 0xff; - if (slot < getContainerSize()) { - inventory.set(slot, ItemStack.of(tag)); - inventorySnapshot.set(slot, inventory.get(slot).copy()); - } - } + ContainerHelper.loadAllItems(nbt, inventory); + for (var i = 0; i < inventory.size(); i++) inventorySnapshot.set(i, inventory.get(i).copy()); // Read state brain.readFromNBT(nbt); @@ -155,16 +145,7 @@ public void loadServer(CompoundTag nbt) { @Override public void saveAdditional(CompoundTag nbt) { // Write inventory - var nbttaglist = new ListTag(); - for (var i = 0; i < INVENTORY_SIZE; i++) { - if (!inventory.get(i).isEmpty()) { - var tag = new CompoundTag(); - tag.putByte("Slot", (byte) i); - inventory.get(i).save(tag); - nbttaglist.add(tag); - } - } - nbt.put("Items", nbttaglist); + ContainerHelper.saveAllItems(nbt, inventory); // Write brain nbt = brain.writeToNBT(nbt); diff --git a/projects/forge/build.gradle.kts b/projects/forge/build.gradle.kts index e256a37d2..8561d6c2a 100644 --- a/projects/forge/build.gradle.kts +++ b/projects/forge/build.gradle.kts @@ -249,7 +249,10 @@ modPublishing { // Make sure configureReobfTaskForReobfJarJar runs after compilation // see - https://github.com/SpongePowered/MixinGradle/pull/51 tasks.configureEach { - if (name == "configureReobfTaskForReobfJarJar") mustRunAfter(tasks.jarJar) + when (name) { + "configureReobfTaskForReobfJar" -> mustRunAfter(tasks.jar) + "configureReobfTaskForReobfJarJar" -> mustRunAfter(tasks.jarJar) + } } // Don't publish the slim jar