From 1b0ffa2633fa9d93efe7610b99d53786ce5f2b92 Mon Sep 17 00:00:00 2001 From: Magnus Jensen Date: Fri, 14 Oct 2022 18:41:09 +0200 Subject: [PATCH] [1.18.x] Invalidate lazy optionals properly (#9082) --- .../fluids/capability/TileFluidHandler.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraftforge/fluids/capability/TileFluidHandler.java b/src/main/java/net/minecraftforge/fluids/capability/TileFluidHandler.java index 5d6a289b8f..efe8cd9d9c 100644 --- a/src/main/java/net/minecraftforge/fluids/capability/TileFluidHandler.java +++ b/src/main/java/net/minecraftforge/fluids/capability/TileFluidHandler.java @@ -23,7 +23,7 @@ public class TileFluidHandler extends BlockEntity { protected FluidTank tank = new FluidTank(FluidAttributes.BUCKET_VOLUME); - private final LazyOptional holder = LazyOptional.of(() -> tank); + private LazyOptional holder = LazyOptional.of(() -> tank); public TileFluidHandler(@Nonnull BlockEntityType blockEntityType, BlockPos pos, BlockState state) { @@ -52,4 +52,16 @@ public class TileFluidHandler extends BlockEntity return holder.cast(); return super.getCapability(capability, facing); } + + @Override + public void invalidateCaps() { + super.invalidateCaps(); + holder.invalidate(); + } + + @Override + public void reviveCaps() { + super.reviveCaps(); + holder = LazyOptional.of(() -> tank); + } }