aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java
diff options
context:
space:
mode:
authorLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-21 13:58:34 +0100
committerLMBishop <13875753+LMBishop@users.noreply.github.com>2021-06-21 13:58:34 +0100
commitef0ffdbaea78191feb030202e30c6ca0c9c8f160 (patch)
treedc662ab15269cf0fdc275c091b04937ae7297d15 /bukkit/src/main/java
parent2a95cf81233822b636dddf8329d36b7c88b85286 (diff)
Fix configuration validation
Diffstat (limited to 'bukkit/src/main/java')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java7
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsConfig.java12
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