Skip to content

Commit

Permalink
Fix crash when copy_tank_data loot function is applied to wrong block
Browse files Browse the repository at this point in the history
Closes #1056
  • Loading branch information
rubensworks committed Sep 5, 2024
1 parent a2e00ca commit 983fe9b
Showing 1 changed file with 12 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,18 @@ protected LootFunctionCopyTankData(LootItemCondition[] conditionsIn) {

@Override
public ItemStack run(ItemStack itemStack, LootContext lootContext) {
BlockEntityTankInventory tile = (BlockEntityTankInventory) lootContext.getParamOrNull(LootContextParams.BLOCK_ENTITY);
SingleUseTank fluidHandlerTile = tile.getTank();
itemStack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY)
.ifPresent(fluidHandlerItem -> {
if (fluidHandlerItem instanceof IFluidHandlerMutable) {
((IFluidHandlerMutable) fluidHandlerItem).setFluidInTank(0, fluidHandlerTile.getFluidInTank(0));
}
if (fluidHandlerItem instanceof IFluidHandlerItemCapacity) {
((IFluidHandlerItemCapacity) fluidHandlerItem).setCapacity(fluidHandlerTile.getTankCapacity(0));
}
});
if (lootContext.getParamOrNull(LootContextParams.BLOCK_ENTITY) instanceof BlockEntityTankInventory tile) {
SingleUseTank fluidHandlerTile = tile.getTank();
itemStack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY)
.ifPresent(fluidHandlerItem -> {
if (fluidHandlerItem instanceof IFluidHandlerMutable) {
((IFluidHandlerMutable) fluidHandlerItem).setFluidInTank(0, fluidHandlerTile.getFluidInTank(0));
}
if (fluidHandlerItem instanceof IFluidHandlerItemCapacity) {
((IFluidHandlerItemCapacity) fluidHandlerItem).setCapacity(fluidHandlerTile.getTankCapacity(0));
}
});
}
return itemStack;
}

Expand Down

0 comments on commit 983fe9b

Please sign in to comment.