From e24b53a26e6733661b1d7fdc0a5cb9a383c7fd75 Mon Sep 17 00:00:00 2001 From: Arthur Uzulin Date: Sat, 15 Feb 2014 23:56:44 +1100 Subject: [PATCH] Fixed NPE when breaking blocks with undefined HarvestTool --- src/main/java/tconstruct/items/tools/Hammer.java | 4 +++- src/main/java/tconstruct/library/tools/HarvestTool.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/tconstruct/items/tools/Hammer.java b/src/main/java/tconstruct/items/tools/Hammer.java index 302e8e63c88..ec7c82ae5a3 100644 --- a/src/main/java/tconstruct/items/tools/Hammer.java +++ b/src/main/java/tconstruct/items/tools/Hammer.java @@ -291,7 +291,7 @@ public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPl Block localBlock = world.getBlock(xPos, yPos, zPos); int localMeta = world.getBlockMetadata(xPos, yPos, zPos); int hlvl = -1; - if (block.getHarvestTool(meta).equals(this.getHarvestType())) + if (block.getHarvestTool(meta) != null && block.getHarvestTool(meta).equals(this.getHarvestType())) hlvl = block.getHarvestLevel(meta); float localHardness = localBlock == null ? Float.MAX_VALUE : localBlock.getBlockHardness(world, xPos, yPos, zPos); @@ -322,10 +322,12 @@ public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPl localBlock.onBlockHarvested(world, xPos, yPos, zPos, localMeta, player); if (blockHardness > 0f) onBlockDestroyed(stack, world, localBlock, xPos, yPos, zPos, player); + world.func_147479_m(x, y, z); } else { WorldHelper.setBlockToAir(world, xPos, yPos, zPos); + world.func_147479_m(x, y, z); } } } diff --git a/src/main/java/tconstruct/library/tools/HarvestTool.java b/src/main/java/tconstruct/library/tools/HarvestTool.java index 096355cf68d..569e8141dee 100644 --- a/src/main/java/tconstruct/library/tools/HarvestTool.java +++ b/src/main/java/tconstruct/library/tools/HarvestTool.java @@ -39,7 +39,7 @@ public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPl { Block localBlock = world.getBlock(x, y, z); int localMeta = world.getBlockMetadata(x, y, z); - if (block.getHarvestTool(meta).equals(this.getHarvestType())) + if (block.getHarvestTool(meta) != null && block.getHarvestTool(meta).equals(this.getHarvestType())) hlvl = block.getHarvestLevel(meta); int toolLevel = tags.getInteger("HarvestLevel"); float blockHardness = block.getBlockHardness(world, x, y, z); @@ -72,10 +72,12 @@ public boolean onBlockStartBreak (ItemStack stack, int x, int y, int z, EntityPl localBlock.onBlockHarvested(world, x, y, z, localMeta, player); if (blockHardness > 0f) onBlockDestroyed(stack, world, localBlock, x, y, z, player); + world.func_147479_m(x, y, z); } else { WorldHelper.setBlockToAir(world, x, y, z); + world.func_147479_m(x, y, z); } } }