diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/com/leonardobishop/quests/obj/Options.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/com/leonardobishop/quests/obj/Options.java b/src/main/java/com/leonardobishop/quests/obj/Options.java index b3afc73f..9ed69fd7 100644 --- a/src/main/java/com/leonardobishop/quests/obj/Options.java +++ b/src/main/java/com/leonardobishop/quests/obj/Options.java @@ -3,11 +3,13 @@ package com.leonardobishop.quests.obj; import com.leonardobishop.quests.Quests; import org.bukkit.ChatColor; +import java.time.temporal.ValueRange; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; public enum Options { - CATEGORIES_ENABLED("options.categories-enabled"), TRIM_GUI_SIZE("options.trim-gui-size"), QUESTS_START_LIMIT("options.quest-started-limit"), @@ -27,6 +29,8 @@ public enum Options { ERROR_CHECKING_OVERRIDE("options.error-checking.override-errors"), QUEST_AUTOSTART("options.quest-autostart"); + private static final Map<String, Boolean> cachedBools = new HashMap<>(); + private final String path; Options(String path) { @@ -50,7 +54,13 @@ public enum Options { } public boolean getBooleanValue() { - return Quests.get().getConfig().getBoolean(path); + Boolean val = cachedBools.get(path); + if (val != null) { + return val; + } else { + cachedBools.put(path, Quests.get().getConfig().getBoolean(path)); + return getBooleanValue(); + } } public boolean getBooleanValue(boolean def) { @@ -72,4 +82,8 @@ public enum Options { } return colored; } + + public static void clearBoolValues() { + cachedBools.clear(); + } } |
