package joshie.progression.crafting.actions; import joshie.progression.crafting.ActionType; import joshie.progression.crafting.Crafter; import joshie.progression.crafting.CraftingRegistry; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class ActionGeneral extends ActionForgeEvent { public static final ActionGeneral INSTANCE = new ActionGeneral(); @SubscribeEvent(priority = EventPriority.HIGHEST) public void onPlayerAttack(AttackEntityEvent event) { checkAndCancelEvent(event); } @SubscribeEvent(priority = EventPriority.HIGHEST) public void onPlayerInteract(PlayerInteractEvent event) { checkAndCancelEvent(event); } public boolean checkAndCancelEvent(net.minecraftforge.event.entity.player.PlayerEvent event) { //TODO: Check if get active stack is correct for here if (event.getEntityPlayer().getActiveItemStack() == null) return true; EntityPlayer player = event.getEntityPlayer(); Crafter crafter = CraftingRegistry.get(player.worldObj.isRemote).getCrafterFromPlayer(player); //TODO: Check if get active stack is correct for here if (!crafter.canUseItemWithAction(event.getEntityPlayer().worldObj, ActionType.GENERAL, player.getActiveItemStack())) { event.setCanceled(true); return false; } else return true; } }