aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java28
-rw-r--r--src/main/java/com/leonardobishop/quests/obj/Options.java1
2 files changed, 28 insertions, 1 deletions
diff --git a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
index 24a2f19f..7699ec70 100644
--- a/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
+++ b/src/main/java/com/leonardobishop/quests/QuestsConfigLoader.java
@@ -73,6 +73,31 @@ public class QuestsConfigLoader {
continue;
}
+ // CHECK EVERYTHING WRONG WITH THE QUEST FILE BEFORE ACTUALLY LOADING THE QUEST
+
+ boolean isTheQuestFileOkay = true;
+
+ if (!config.isConfigurationSection("tasks")) {
+ isTheQuestFileOkay = false;
+ } else { //continue
+ for (String taskId : config.getConfigurationSection("tasks").getKeys(false)) {
+ String taskRoot = "tasks." + taskId;
+ String taskType = config.getString(taskRoot + ".type");
+
+ if (!config.isConfigurationSection(taskRoot)) {
+ isTheQuestFileOkay = false;
+ break; //do not loop if section do not exist, just break directly
+ }
+ }
+ }
+
+ if (!isTheQuestFileOkay) { //if the file quest is not okay, do not load the quest
+ brokenFiles.put(questFile.getName(), ConfigLoadError.MALFORMED_QUEST);
+ continue; //next quest please!
+ }
+
+ // END OF THE CHECKING
+
QItemStack displayItem = getQItemStack("display", config);
List<String> rewards = config.getStringList("rewards");
List<String> requirements = config.getStringList("options.requires");
@@ -165,7 +190,8 @@ public class QuestsConfigLoader {
public enum ConfigLoadError {
MALFORMED_YAML("Malformed YAML"),
- INVALID_QUEST_ID("Invalid quest ID (must be alphanumeric)");
+ INVALID_QUEST_ID("Invalid quest ID (must be alphanumeric)"),
+ MALFORMED_QUEST("Quest file isn't configured properly.");
private String message;
diff --git a/src/main/java/com/leonardobishop/quests/obj/Options.java b/src/main/java/com/leonardobishop/quests/obj/Options.java
index 404c7fed..afcb8fcf 100644
--- a/src/main/java/com/leonardobishop/quests/obj/Options.java
+++ b/src/main/java/com/leonardobishop/quests/obj/Options.java
@@ -47,6 +47,7 @@ public enum Options {
public static String color(String s) {
return ChatColor.translateAlternateColorCodes('&', s);
}
+
public static List<String> color(List<String> s) {
List<String> colored = new ArrayList<>();
for (String line : s) {