diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-06-21 13:58:34 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-06-21 13:58:34 +0100 |
| commit | ef0ffdbaea78191feb030202e30c6ca0c9c8f160 (patch) | |
| tree | dc662ab15269cf0fdc275c091b04937ae7297d15 /bukkit/src/main/java/com | |
| parent | 2a95cf81233822b636dddf8329d36b7c88b85286 (diff) | |
Fix configuration validation
Diffstat (limited to 'bukkit/src/main/java/com')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java | 7 | ||||
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java | 12 |
2 files changed, 15 insertions, 4 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java index 75994283..92457425 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java @@ -319,6 +319,8 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { @Override public void onDisable() { + if (!validConfiguration) return; + for (TaskType taskType : getTaskTypeManager().getTaskTypes()) { try { taskType.onDisable(); @@ -538,4 +540,9 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests { public FileConfiguration getConfig() { return questsConfig.getConfig(); } + + @Override + public void reloadConfig() { + this.reloadBaseConfiguration(); + } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java index add7c33e..908ba361 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java @@ -2,6 +2,9 @@ package com.leonardobishop.quests.bukkit.config; import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetter; import com.leonardobishop.quests.common.config.QuestsConfig; +import com.leonardobishop.quests.common.plugin.Quests; +import org.bukkit.configuration.InvalidConfigurationException; +import org.bukkit.configuration.MemoryConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.inventory.ItemStack; @@ -15,8 +18,8 @@ public class BukkitQuestsConfig implements QuestsConfig { private final Map<String, ItemStack> cachedItemStacks = new HashMap<>(); // this is faster than just relying on the YamlConfiguration to cache it for some reason private final Map<String, Boolean> cachedBooleans = new HashMap<>(); + private final File file; private YamlConfiguration config; - private File file; private ItemGetter itemGetter; public BukkitQuestsConfig(File file) { @@ -31,8 +34,9 @@ public class BukkitQuestsConfig implements QuestsConfig { public boolean loadConfig() { this.cachedBooleans.clear(); this.cachedItemStacks.clear(); + this.config = new YamlConfiguration(); try { - config = YamlConfiguration.loadConfiguration(file); + config.load(file); return true; } catch (Exception e) { e.printStackTrace(); @@ -56,12 +60,12 @@ public class BukkitQuestsConfig implements QuestsConfig { @Override public boolean getBoolean(String path) { - return config.getBoolean(path); + return cachedBooleans.computeIfAbsent(path, s -> config.getBoolean(path)); } @Override public boolean getBoolean(String path, boolean def) { - return config.getBoolean(path, def); + return cachedBooleans.computeIfAbsent(path, s -> config.getBoolean(path, def)); } @Override |
