package joshie.progression.crafting.actions; import joshie.progression.crafting.ActionType; import joshie.progression.handlers.ProgressionEvents; import joshie.progression.helpers.BlockActionHelper; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.entity.player.PlayerEvent.BreakSpeed; import net.minecraftforge.event.world.BlockEvent.BreakEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class ActionBreakBlock extends ActionForgeEvent { public static final ActionBreakBlock INSTANCE = new ActionBreakBlock(); @SubscribeEvent public void onBreakSpeed(BreakSpeed event) { EntityPlayer player = event.getEntityPlayer(); if (player != null) { Block block = event.getState().getBlock(); int meta = block.getMetaFromState(event.getState()); if (ProgressionEvents.isEventCancelled(event.getEntityPlayer(), ActionType.BREAKBLOCKWITH, event.getEntityPlayer().getHeldItemMainhand(), ActionType.BREAKBLOCK, BlockActionHelper.getStackFromBlockData(block, meta))) { event.setNewSpeed(0F); } } } @SubscribeEvent public void onBreakBlock(BreakEvent event) { EntityPlayer player = event.getPlayer(); if (player != null) { Block block = event.getState().getBlock(); int meta = block.getMetaFromState(event.getState()); if (ProgressionEvents.isEventCancelled(player, ActionType.BREAKBLOCKWITH, player.getHeldItemMainhand(), ActionType.BREAKBLOCK, BlockActionHelper.getStackFromBlockData(block, meta))) { event.setCanceled(true); } } } }