From 96ba65d506641ef37fbefc5f9a6c65a4ccec5d23 Mon Sep 17 00:00:00 2001 From: GJ Date: Wed, 20 Mar 2013 01:35:22 -0400 Subject: Add methods to check conflicting enchantments. Adds BUKKIT-3830 --- .../craftbukkit/inventory/CraftMetaEnchantedBook.java | 4 ++++ .../bukkit/craftbukkit/inventory/CraftMetaItem.java | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+) (limited to 'src/main') diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java index 612a630d..f975e867 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEnchantedBook.java @@ -161,4 +161,8 @@ class CraftMetaEnchantedBook extends CraftMetaItem implements EnchantmentStorage public boolean hasStoredEnchants() { return !(enchantments == null || enchantments.isEmpty()); } + + public boolean hasConflictingStoredEnchant(Enchantment ench) { + return checkConflictingEnchants(enchantments, ench); + } } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java index 30916f99..90e7ffc3 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -405,6 +405,10 @@ class CraftMetaItem implements ItemMeta, Repairable { return !(enchantments == null || enchantments.isEmpty()); } + public boolean hasConflictingEnchant(Enchantment ench) { + return checkConflictingEnchants(enchantments, ench); + } + public List getLore() { return this.lore == null ? null : new ArrayList(this.lore); } @@ -555,6 +559,20 @@ class CraftMetaItem implements ItemMeta, Repairable { } } + static boolean checkConflictingEnchants(Map enchantments, Enchantment ench) { + if (enchantments == null || enchantments.isEmpty()) { + return false; + } + + for (Enchantment enchant : enchantments.keySet()) { + if (enchant.conflictsWith(ench)) { + return true; + } + } + + return false; + } + @Override public final String toString() { return SerializableMeta.classMap.get(getClass()) + "_META:" + serialize(); // TODO: cry -- cgit v1.2.3