From 2617fb9f5b516cc8a6498913cba850cd26a9eb80 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 19 Dec 2020 18:56:04 +0000 Subject: [PATCH] Optimised EnchantChecks --- .../ecoenchants/enchantments/EcoEnchants.java | 30 ++++++++++++++----- .../enchantments/util/EnchantChecks.java | 9 +++--- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java index a4777413..e00c4610 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/EcoEnchants.java @@ -1,18 +1,32 @@ package com.willfp.ecoenchants.enchantments; import com.willfp.ecoenchants.enchantments.ecoenchants.artifact.*; -import com.willfp.ecoenchants.enchantments.ecoenchants.curse.*; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.BreaklessnessCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.CallingCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.DecayCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.FragilityCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.HarmlessnessCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.HungerCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.InaccuracyCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.MisfortuneCurse; +import com.willfp.ecoenchants.enchantments.ecoenchants.curse.PermanenceCurse; import com.willfp.ecoenchants.enchantments.ecoenchants.normal.*; import com.willfp.ecoenchants.enchantments.ecoenchants.special.*; -import com.willfp.ecoenchants.enchantments.ecoenchants.spell.*; +import com.willfp.ecoenchants.enchantments.ecoenchants.spell.Ascend; +import com.willfp.ecoenchants.enchantments.ecoenchants.spell.Charge; +import com.willfp.ecoenchants.enchantments.ecoenchants.spell.Dynamite; +import com.willfp.ecoenchants.enchantments.ecoenchants.spell.Missile; +import com.willfp.ecoenchants.enchantments.ecoenchants.spell.Quake; +import com.willfp.ecoenchants.enchantments.ecoenchants.spell.Vitalize; import org.bukkit.NamespacedKey; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.EnchantmentStorageMeta; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; /** @@ -24,7 +38,7 @@ public class EcoEnchants { public static final String OBTAINING_LOCATION = "obtaining."; public static final String GENERAL_LOCATION = "general-config."; - private static final Set ecoEnchants = new HashSet<>(); + private static final List ecoEnchants = new ArrayList<>(); public static final EcoEnchant TELEKINESIS = new Telekinesis(); public static final EcoEnchant MARKSMAN = new Marksman(); @@ -250,9 +264,9 @@ public class EcoEnchants { /** * Get all registered {@link EcoEnchant}s * - * @return A set of all {@link EcoEnchant}s + * @return A list of all {@link EcoEnchant}s */ - public static Set getAll() { + public static List getAll() { return ecoEnchants; } @@ -299,8 +313,8 @@ public class EcoEnchants { * @return The matching {@link EcoEnchant}, or null if not found. */ public static EcoEnchant getByKey(NamespacedKey key) { - for (EcoEnchant ecoEnchant : getAll()) { - if(ecoEnchant.getKey().equals(key)) return ecoEnchant; + for (EcoEnchant found : ecoEnchants) { + if (found.getKey().equals(key)) return found; } return null; } diff --git a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/EnchantChecks.java b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/EnchantChecks.java index ff8e581b..e77fde75 100644 --- a/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/EnchantChecks.java +++ b/Plugin/src/main/java/com/willfp/ecoenchants/enchantments/util/EnchantChecks.java @@ -181,11 +181,10 @@ public class EnchantChecks { Map ecoEnchants = new HashMap<>(); - item.getEnchantments().forEach(((enchantment, integer) -> { - if (EcoEnchants.getFromEnchantment(enchantment) != null) { - ecoEnchants.put(EcoEnchants.getFromEnchantment(enchantment), integer); - } - })); + for (Map.Entry entry : item.getEnchantments().entrySet()) { + EcoEnchant enchant = EcoEnchants.getFromEnchantment(entry.getKey()); + if(enchant != null) ecoEnchants.put(enchant, entry.getValue()); + } return ecoEnchants; }