diff --git a/pom.xml b/pom.xml
index 3794095..b6e3223 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
dev.espi
protectionstones
- 2.10.5
+ 2.10.6
ProtectionStones
A grief prevention plugin for Spigot Minecraft servers.
https://github.com/espidev/ProtectionStones
@@ -207,7 +207,7 @@
org.spigotmc
spigot-api
- 1.20.6-R0.1-SNAPSHOT
+ 1.21.3-R0.1-SNAPSHOT
provided
diff --git a/src/main/java/dev/espi/protectionstones/ListenerClass.java b/src/main/java/dev/espi/protectionstones/ListenerClass.java
index 783de99..3738b68 100644
--- a/src/main/java/dev/espi/protectionstones/ListenerClass.java
+++ b/src/main/java/dev/espi/protectionstones/ListenerClass.java
@@ -33,10 +33,7 @@
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.World;
-import org.bukkit.block.Block;
-import org.bukkit.block.BlockFace;
-import org.bukkit.block.BlockState;
-import org.bukkit.block.Furnace;
+import org.bukkit.block.*;
import org.bukkit.command.CommandSender;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
@@ -53,6 +50,7 @@
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
+import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import java.util.List;
@@ -307,6 +305,22 @@ public void onPrepareItemCraft(PrepareItemCraftEvent e) {
}
}
+ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
+ public void onCrafter(CrafterCraftEvent e) {
+ Block block = e.getBlock();
+ BlockState state = block.getState();
+ if (block.getType() != Material.CRAFTER) return;
+ if (!(state instanceof Container container)) return;
+ Inventory inv = container.getInventory();
+ for (ItemStack item : inv.getContents()) {
+ if (item == null) continue;
+ PSProtectBlock options = ProtectionStones.getBlockOptions(item);
+ if (options != null && !options.allowUseInCrafting) {
+ e.setCancelled(true);
+ e.setResult(new ItemStack(Material.AIR));
+ }
+ }
+ }
// -=-=-=- disable grindstone inventory to prevent infinite exp exploit with enchanted_effect option -=-=-=-
// see https://github.com/espidev/ProtectionStones/issues/324