@EventHandler(priority=EventPriority.HIGH)
    public void onPrepareSuperCraft(final PrepareItemCraftEvent event)
    {
        if(event.getView().getPlayer() instanceof Player == false) return;
        final Player player = (Player) event.getView().getPlayer();
        if(ef.crafting.get(player.getName()) == null) return;
        ItemStack result = event.getRecipe().getResult();
        ItemMeta resultMeta = event.getRecipe().getResult().getItemMeta();
        if(resultMeta.hasDisplayName())
        {
            final String name = EnderForge.translateAlternateColorCodesBackwards('&', ChatColor.stripColor(resultMeta.getDisplayName()));
            if(!name.equals(ef.crafting.get(player.getName())))
            {
                event.getInventory().setResult(null);
                return;
            }
            if(ef.getRecipeMap().containsKey(name))
            {
                int data = EnderRecipe.getIdentifier(ef.getRecipeMap().get(name).getResult());
                int resultData = EnderRecipe.getIdentifier(result);
                if(data == resultData)
                {
                    new BukkitRunnable()
                    {
                        @Override
                        public void run()
                        {
                            event.getInventory().setResult(ef.getRecipeMap().get(name).getResult());
                            player.updateInventory();
                        }
                    }.runTaskLater(ef, 1L);
                    
                }
            }
        }
    }