From d1fe2936f02dce1df956a1f221cbb692b7697c9b Mon Sep 17 00:00:00 2001 From: Jerzean Date: Mon, 22 Sep 2025 23:51:40 -0400 Subject: [PATCH] crafter fix/support bump spigot version(its required until we can find away to add sub 1.21.3 back) --- pom.xml | 4 ++-- .../espi/protectionstones/ListenerClass.java | 22 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) 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