@EventHandler(priority=EventPriority.LOW)
    public void cancelNormalCrafting(PrepareItemCraftEvent event)
    {
        if(event.getView().getPlayer() instanceof Player == false) return;
        Player player = (Player) event.getView().getPlayer();
        if(ef.crafting.get(player.getName()) != null) return;
        ItemStack result = event.getRecipe().getResult();
        ItemMeta resultMeta = result.getItemMeta();
        if(resultMeta.hasDisplayName())
        {
            String name = resultMeta.getDisplayName();
            name = EnderForge.translateAlternateColorCodesBackwards('&', name);
            if(ef.getRecipeMap().containsKey(name))
            {
                int data = EnderRecipe.getIdentifier(ef.getRecipeMap().get(name).getResult());
                int resultData = EnderRecipe.getIdentifier(result);
                if(data == resultData || result == null)
                {
                    event.getInventory().setResult(null);
                    player.updateInventory();
                }
                else if(result.getType().getMaxDurability() > 0)
                {
                    // Tools are bugged: they always return an ItemStack with datavalue 0...
                    // Note to Svesken: don't use tools in recipes, might break
                    event.getInventory().setResult(null);
                    player.updateInventory();
                }
            }
        }
    }