diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEnchantinfo.java b/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEnchantinfo.java index f62671b5..6d9ffa63 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEnchantinfo.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/command/commands/CommandEnchantinfo.java @@ -85,7 +85,7 @@ public final class CommandEnchantinfo extends AbstractCommand { Set applicableItemsSet = new HashSet<>(); if(ConfigManager.getConfig().getBool("commands.enchantinfo.show-target-group")) { - enchantment.getRawTarget().forEach(target -> { + enchantment.getRawTargets().forEach(target -> { String targetName = target.getName(); targetName = targetName.toLowerCase(); targetName = targetName.replaceAll("_", " "); diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java index 06708b76..7bf83739 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchant.java @@ -36,7 +36,8 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist private int maxLvl; private Set conflicts; private EnchantmentRarity rarity; - private Set target = new HashSet<>(); + private final Set target = new HashSet<>(); + private final Set targetMaterials = new HashSet<>(); private boolean enabled; @@ -84,7 +85,9 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist name = ChatColor.translateAlternateColorCodes('&', config.getString("name")); description = ChatColor.translateAlternateColorCodes('&', config.getString("description")); target.clear(); + targetMaterials.clear(); target.addAll(config.getTargets()); + target.forEach(enchantmentTarget -> targetMaterials.addAll(enchantmentTarget.getMaterials())); enabled = config.getBool("enabled", true); this.register(); @@ -230,18 +233,14 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist * @return Set of enchantable items */ public Set getTarget() { - Set materials = new HashSet<>(); - target.forEach(target -> { - materials.addAll(target.getMaterials()); - }); - return materials; + return targetMaterials; } /** * Get raw target of enchantment * @return {@link com.willfp.ecoenchants.enchantments.meta.EnchantmentTarget} */ - public Set getRawTarget() { + public Set getRawTargets() { return target; } @@ -333,7 +332,7 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist */ @Override public boolean canEnchantItem(ItemStack itemStack) { - return target.contains(itemStack.getType()) || itemStack.getType().equals(Material.BOOK) || itemStack.getType().equals(Material.ENCHANTED_BOOK); + return targetMaterials.contains(itemStack.getType()) || itemStack.getType().equals(Material.BOOK) || itemStack.getType().equals(Material.ENCHANTED_BOOK); } /**