From ddcc1237e8a077f51b0d58991b32a533c1171da9 Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 3 Nov 2015 09:11:39 -0800 Subject: [PATCH] Inventories now don't NPE when broken --- .../java/WayofTime/bloodmagic/altar/BloodAltar.java | 2 +- .../java/WayofTime/bloodmagic/block/BlockAltar.java | 10 +++++----- .../java/WayofTime/bloodmagic/tile/TileInventory.java | 6 ++---- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java b/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java index 905b4d0a..8f1e290b 100644 --- a/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java +++ b/src/main/java/WayofTime/bloodmagic/altar/BloodAltar.java @@ -44,7 +44,7 @@ public class BloodAltar { } } - return true; + return false; } public static AltarUpgrade getUpgrades(World world, BlockPos pos, EnumAltarTier altarTier) diff --git a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java index b183a641..57a13953 100644 --- a/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java +++ b/src/main/java/WayofTime/bloodmagic/block/BlockAltar.java @@ -3,7 +3,6 @@ package WayofTime.bloodmagic.block; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.iface.IAltarReader; import WayofTime.bloodmagic.tile.TileAltar; -import WayofTime.bloodmagic.tile.TileInventory; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; @@ -88,10 +87,11 @@ public class BlockAltar extends BlockContainer { } @Override - public void breakBlock(World world, BlockPos blockPos, IBlockState blockState) - { - TileInventory tileInventory = (TileInventory) world.getTileEntity(blockPos); - if (tileInventory != null) tileInventory.dropItems(); + public void breakBlock(World world, BlockPos blockPos, IBlockState blockState) { + TileAltar tileAltar = (TileAltar) world.getTileEntity(blockPos); + if (tileAltar != null) + tileAltar.dropItems(); + super.breakBlock(world, blockPos, blockState); } diff --git a/src/main/java/WayofTime/bloodmagic/tile/TileInventory.java b/src/main/java/WayofTime/bloodmagic/tile/TileInventory.java index bdd4c531..fa472de7 100644 --- a/src/main/java/WayofTime/bloodmagic/tile/TileInventory.java +++ b/src/main/java/WayofTime/bloodmagic/tile/TileInventory.java @@ -3,6 +3,7 @@ package WayofTime.bloodmagic.tile; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.InventoryHelper; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; @@ -57,10 +58,7 @@ public class TileInventory extends TileEntity implements IInventory { } public void dropItems() { - if (inventory != null) { - for (ItemStack stack : inventory) - getWorld().spawnEntityInWorld(new EntityItem(getWorld(), getPos().getX(), pos.getY(), pos.getZ(), stack)); - } + InventoryHelper.dropInventoryItems(getWorld(), getPos(), this); } // IInventory