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); + } + } }