Skip to content

Commit f67c10d

Browse files
committed
* NEW: Implemented the craft permission management.
1 parent 3d0c693 commit f67c10d

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

src/main/java/eu/carrade/amaury/BelovedBlocks/listeners/CraftingListener.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,20 @@
1616

1717
import eu.carrade.amaury.BelovedBlocks.BBConfig;
1818
import eu.carrade.amaury.BelovedBlocks.BelovedBlocks;
19+
import eu.carrade.amaury.BelovedBlocks.BelovedItem;
1920
import eu.carrade.amaury.BelovedBlocks.blocks.BelovedBlock;
2021
import eu.carrade.amaury.BelovedBlocks.tools.BelovedTool;
2122
import fr.zcraft.zlib.core.ZLibComponent;
2223
import fr.zcraft.zlib.tools.items.InventoryUtils;
2324
import fr.zcraft.zlib.tools.items.ItemUtils;
2425
import org.bukkit.Material;
26+
import org.bukkit.entity.HumanEntity;
27+
import org.bukkit.entity.Player;
2528
import org.bukkit.event.EventHandler;
2629
import org.bukkit.event.EventPriority;
2730
import org.bukkit.event.Listener;
2831
import org.bukkit.event.inventory.InventoryClickEvent;
32+
import org.bukkit.event.inventory.PrepareItemCraftEvent;
2933
import org.bukkit.inventory.AnvilInventory;
3034
import org.bukkit.inventory.CraftingInventory;
3135
import org.bukkit.inventory.ItemStack;
@@ -73,4 +77,23 @@ else if (ev.getInventory() instanceof AnvilInventory && BBConfig.USE_ITEM_NAMES_
7377
}
7478
}
7579
}
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+
}
7699
}

0 commit comments

Comments
 (0)