From 3de1c3868aa5b54005d787c2f2fe7df38afbd974 Mon Sep 17 00:00:00 2001 From: Jonathan Coates Date: Fri, 21 Aug 2026 22:46:57 +0100 Subject: [PATCH] Fix usages of ItemStack.save with setNewCompoundTag The correct usage should either be .put(stack.save(...)) or .setNewCompoundTag(stack.save(..., _)), otherwise we just discard the stack. --- src/main/scala/li/cil/oc/common/blockentity/Assembler.scala | 4 ++-- src/main/scala/li/cil/oc/common/blockentity/Printer.scala | 4 ++-- src/main/scala/li/cil/oc/util/ExtendedNBT.scala | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/scala/li/cil/oc/common/blockentity/Assembler.scala b/src/main/scala/li/cil/oc/common/blockentity/Assembler.scala index ffd248b634..11fcd880e1 100644 --- a/src/main/scala/li/cil/oc/common/blockentity/Assembler.scala +++ b/src/main/scala/li/cil/oc/common/blockentity/Assembler.scala @@ -33,7 +33,7 @@ import net.neoforged.neoforge.common.extensions.IBlockEntityExtension import scala.jdk.CollectionConverters._ -class Assembler(pos: BlockPos, state: BlockState) +class Assembler(pos: BlockPos, state: BlockState) extends BlockEntity(BlockEntityTypes.ASSEMBLER.get(), pos, state) with traits.Environment with traits.PowerAcceptor with traits.Inventory with SidedEnvironment with traits.StateAware with traits.Tickable with DeviceInfo with MenuProvider with IBlockEntityExtension { @@ -172,7 +172,7 @@ class Assembler(pos: BlockPos, state: BlockState) override def saveForServer(nbt: CompoundTag, provider: HolderLookup.Provider): Unit = { super.saveForServer(nbt, provider) if (!output.isEmpty) { - nbt.setNewCompoundTag(OutputTag, _ => output.get.save(provider)) + nbt.put(OutputTag, output.get.save(provider)) } else { nbt.remove(OutputTag) diff --git a/src/main/scala/li/cil/oc/common/blockentity/Printer.scala b/src/main/scala/li/cil/oc/common/blockentity/Printer.scala index 071f576af1..aa319f85fa 100644 --- a/src/main/scala/li/cil/oc/common/blockentity/Printer.scala +++ b/src/main/scala/li/cil/oc/common/blockentity/Printer.scala @@ -26,7 +26,7 @@ import net.neoforged.neoforge.common.extensions.IBlockEntityExtension import java.util import scala.collection.convert.ImplicitConversionsToJava._ -class Printer(pos: BlockPos, state: BlockState) +class Printer(pos: BlockPos, state: BlockState) extends BlockEntity(BlockEntityTypes.PRINTER.get(), pos, state) with traits.Environment with traits.Inventory with traits.Rotatable with SidedEnvironment with traits.StateAware with traits.Tickable with WorldlyContainer with DeviceInfo with MenuProvider with IBlockEntityExtension { @@ -339,7 +339,7 @@ class Printer(pos: BlockPos, state: BlockState) nbt.setNewCompoundTag(DataTag, (nbt: CompoundTag) => data.saveData(nbt, provider)) nbt.putBoolean(IsActiveTag, isActive) nbt.putInt(LimitTag, limit) - output.foreach(stack => nbt.setNewCompoundTag(OutputTag, _ => stack.save(provider))) + output.foreach(stack => nbt.put(OutputTag, stack.save(provider))) nbt.putDouble(TotalTag, totalRequiredEnergy) nbt.putDouble(RemainingTag, requiredEnergy) } diff --git a/src/main/scala/li/cil/oc/util/ExtendedNBT.scala b/src/main/scala/li/cil/oc/util/ExtendedNBT.scala index 5d4ebd75bb..de556a19b4 100644 --- a/src/main/scala/li/cil/oc/util/ExtendedNBT.scala +++ b/src/main/scala/li/cil/oc/util/ExtendedNBT.scala @@ -215,7 +215,7 @@ object ExtendedNBT { } class ExtendedCompoundTag(val nbt: CompoundTag) { - def setNewCompoundTag(name: String, f: CompoundTag => Any) = { + def setNewCompoundTag(name: String, f: CompoundTag => Unit) = { val t = new CompoundTag() f(t) nbt.put(name, t)