From 52f9a7c9e72f84a4082a3b9041ef2978d5417dd2 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 14 Jun 2025 04:34:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A6=81=E7=94=A8=E9=99=84?= =?UTF-8?q?=E9=AD=94=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/item/listener/ItemEventListener.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java index be955e898..b827d63e2 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/item/listener/ItemEventListener.java @@ -35,6 +35,8 @@ import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockIgniteEvent; +import org.bukkit.event.enchantment.EnchantItemEvent; +import org.bukkit.event.enchantment.PrepareItemEnchantEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.FoodLevelChangeEvent; import org.bukkit.event.player.PlayerInteractEntityEvent; @@ -414,4 +416,16 @@ public class ItemEventListener implements Listener { }); } } + + @EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST) + public void onEnchant(PrepareItemEnchantEvent event) { + ItemStack itemToEnchant = event.getItem(); + Item wrapped = this.plugin.itemManager().wrap(itemToEnchant); + Optional> optionalCustomItem = wrapped.getCustomItem(); + if (optionalCustomItem.isEmpty()) return; + CustomItem customItem = optionalCustomItem.get(); + if (!customItem.settings().canEnchant()) { + event.setCancelled(true); + } + } }