[1.18.x] Invalidate lazy optionals properly (#9082)

This commit is contained in:
Magnus Jensen authored and GitHub committed 2022-10-14 17:41:09 +01:00
1 parent 763523d1c0
commit 1b0ffa2633
1 file changed
+13 -1
@@ -23,7 +23,7 @@ public class TileFluidHandler extends BlockEntity
{
protected FluidTank tank = new FluidTank(FluidAttributes.BUCKET_VOLUME);
private final LazyOptional<IFluidHandler> holder = LazyOptional.of(() -> tank);
private LazyOptional<IFluidHandler> 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);
}
}