| 
16 | 16 | 
 
  | 
17 | 17 | import eu.carrade.amaury.BelovedBlocks.BBConfig;  | 
18 | 18 | import eu.carrade.amaury.BelovedBlocks.BelovedBlocks;  | 
 | 19 | +import eu.carrade.amaury.BelovedBlocks.BelovedItem;  | 
19 | 20 | import eu.carrade.amaury.BelovedBlocks.blocks.BelovedBlock;  | 
20 | 21 | import eu.carrade.amaury.BelovedBlocks.tools.BelovedTool;  | 
21 | 22 | import fr.zcraft.zlib.core.ZLibComponent;  | 
22 | 23 | import fr.zcraft.zlib.tools.items.InventoryUtils;  | 
23 | 24 | import fr.zcraft.zlib.tools.items.ItemUtils;  | 
24 | 25 | import org.bukkit.Material;  | 
 | 26 | +import org.bukkit.entity.HumanEntity;  | 
 | 27 | +import org.bukkit.entity.Player;  | 
25 | 28 | import org.bukkit.event.EventHandler;  | 
26 | 29 | import org.bukkit.event.EventPriority;  | 
27 | 30 | import org.bukkit.event.Listener;  | 
28 | 31 | import org.bukkit.event.inventory.InventoryClickEvent;  | 
 | 32 | +import org.bukkit.event.inventory.PrepareItemCraftEvent;  | 
29 | 33 | import org.bukkit.inventory.AnvilInventory;  | 
30 | 34 | import org.bukkit.inventory.CraftingInventory;  | 
31 | 35 | import org.bukkit.inventory.ItemStack;  | 
@@ -73,4 +77,23 @@ else if (ev.getInventory() instanceof AnvilInventory && BBConfig.USE_ITEM_NAMES_  | 
73 | 77 |             }  | 
74 | 78 |         }  | 
75 | 79 |     }  | 
 | 80 | +      | 
 | 81 | +    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)  | 
 | 82 | +    public void onPreCraft(final PrepareItemCraftEvent event)   | 
 | 83 | +    {  | 
 | 84 | +        BelovedItem item = BelovedBlocks.getBelovedBlocksManager().getFromItem(event.getRecipe().getResult());  | 
 | 85 | +        if(item == null)  | 
 | 86 | +            item = BelovedBlocks.getToolsManager().getFromItem(event.getRecipe().getResult());  | 
 | 87 | +          | 
 | 88 | +        if(item != null)  | 
 | 89 | +        {  | 
 | 90 | +            for(HumanEntity entity : event.getViewers())  | 
 | 91 | +            {  | 
 | 92 | +                if(!(entity instanceof Player && item.canCraft((Player)entity)))  | 
 | 93 | +                {  | 
 | 94 | +                    event.getInventory().setResult(new ItemStack(Material.AIR));  | 
 | 95 | +                }  | 
 | 96 | +            }  | 
 | 97 | +        }  | 
 | 98 | +    }  | 
76 | 99 | }  | 
0 commit comments