diff --git a/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java b/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java index d171772f96..875ff90a37 100644 --- a/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java +++ b/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java @@ -6,8 +6,9 @@ import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.LogUtils; import java.io.File; -import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import org.bukkit.configuration.file.YamlConfiguration; import org.jetbrains.annotations.VisibleForTesting; @@ -15,36 +16,22 @@ public class FormulaManager { private static final File formulaFile = new File(mcMMO.getFlatFileDirectory() + "formula.yml"); // Experience needed to reach a level, cached values to improve conversion speed - private Map experienceNeededRetroLinear; - private Map experienceNeededStandardLinear; - private Map experienceNeededRetroExponential; - private Map experienceNeededStandardExponential; + private final ConcurrentMap experienceNeededRetroLinear = new ConcurrentHashMap<>(); + private final ConcurrentMap experienceNeededStandardLinear = new ConcurrentHashMap<>(); + private final ConcurrentMap experienceNeededRetroExponential = new ConcurrentHashMap<>(); + private final ConcurrentMap experienceNeededStandardExponential = new ConcurrentHashMap<>(); private FormulaType previousFormula; public FormulaManager() { - /* Setting for Classic Mode (Scales a lot of stuff up by * 10) */ - initExperienceNeededMaps(); loadFormula(); } @VisibleForTesting public FormulaManager(FormulaType previousFormulaType) { - /* Setting for Classic Mode (Scales a lot of stuff up by * 10) */ - initExperienceNeededMaps(); this.previousFormula = previousFormulaType; } - /** - * Initialize maps used for XP to next level - */ - private void initExperienceNeededMaps() { - experienceNeededRetroLinear = new HashMap<>(); - experienceNeededRetroExponential = new HashMap<>(); - experienceNeededStandardLinear = new HashMap<>(); - experienceNeededStandardExponential = new HashMap<>(); - } - /** * Get the formula type that was used before converting *