From faf4562df9022cc21aaced1aa276ab835f21c1c4 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 8 Feb 2016 14:17:56 -0800 Subject: [PATCH] Bound tools now follow the BreakEvent (#79) --- .../java/WayofTime/bloodmagic/item/ItemBoundAxe.java | 10 ++++++++++ .../WayofTime/bloodmagic/item/ItemBoundPickaxe.java | 10 ++++++++++ .../WayofTime/bloodmagic/item/ItemBoundShovel.java | 11 +++++++++++ 3 files changed, 31 insertions(+) diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java index 8e14da56..a52da88d 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java @@ -17,6 +17,9 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.fml.common.eventhandler.Event; import java.util.List; import java.util.Set; @@ -60,6 +63,13 @@ public class ItemBoundAxe extends ItemBoundTool BlockPos blockPos = playerPos.add(i, j, k); BlockStack blockStack = BlockStack.getStackFromPos(world, blockPos); + if (blockStack.getBlock().isAir(world, blockPos)) + break; + + BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, blockPos, blockStack.getState(), player); + if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY) + break; + if (blockStack.getBlock().getBlockHardness(world, blockPos) != -1) { float strengthVsBlock = getStrVsBlock(stack, blockStack.getBlock()); diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java index 7a6e004b..cc36eb06 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java @@ -20,6 +20,9 @@ import WayofTime.bloodmagic.api.ItemStackWrapper; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multimap; import com.google.common.collect.Sets; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.fml.common.eventhandler.Event; public class ItemBoundPickaxe extends ItemBoundTool { @@ -66,6 +69,13 @@ public class ItemBoundPickaxe extends ItemBoundTool BlockPos blockPos = playerPos.add(i, j, k); BlockStack blockStack = BlockStack.getStackFromPos(world, blockPos); + if (blockStack.getBlock().isAir(world, blockPos)) + break; + + BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, blockPos, blockStack.getState(), player); + if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY) + break; + if (blockStack.getBlock() != null && blockStack.getBlock().getBlockHardness(world, blockPos) != -1) { float strengthVsBlock = getStrVsBlock(stack, blockStack.getBlock()); diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java index 09c40727..a1e5ed8b 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java @@ -17,6 +17,10 @@ import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; import net.minecraft.world.World; +import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.world.BlockEvent; +import net.minecraftforge.fml.common.eventhandler.Event; import java.util.List; import java.util.Set; @@ -60,6 +64,13 @@ public class ItemBoundShovel extends ItemBoundTool BlockPos blockPos = playerPos.add(i, j, k); BlockStack blockStack = BlockStack.getStackFromPos(world, blockPos); + if (blockStack.getBlock().isAir(world, blockPos)) + break; + + BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, blockPos, blockStack.getState(), player); + if (MinecraftForge.EVENT_BUS.post(event) || event.getResult() == Event.Result.DENY) + break; + if (blockStack.getBlock() != null && blockStack.getBlock().getBlockHardness(world, blockPos) != -1) { float strengthVsBlock = getStrVsBlock(stack, blockStack.getBlock());