diff --git a/pom.xml b/pom.xml
index 38264c6d..f65b85e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -222,7 +222,7 @@
com.github.thatsmusic99
ConfigurationMaster-API
- v2.0.0-BETA-7
+ v2.0.0-BETA-8
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/HeadsPlus.java b/src/main/java/io/github/thatsmusic99/headsplus/HeadsPlus.java
index 4e0b718b..4e0afd2b 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/HeadsPlus.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/HeadsPlus.java
@@ -286,7 +286,13 @@ private void registerCommand(String command, CommandExecutor executor, String...
private void createInstances() {
configFiles = new ArrayList<>();
MainConfig config = addConfig(MainConfig.class, "config.yml");
- if (config != null) config.load();
+ if (config != null) {
+ try {
+ config.load();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
addConfig(ConfigChallenges.class, "challenges.yml");
if (new File(getDataFolder(), "customheads.yml").exists()) addConfig(ConfigCustomHeads.class, "customheads.yml");
addConfig(ConfigCrafting.class, "crafting.yml");
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigCrafting.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigCrafting.java
index 1da5153a..777d3aff 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigCrafting.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigCrafting.java
@@ -4,7 +4,6 @@
import io.github.thatsmusic99.configurationmaster.api.ConfigSection;
import io.github.thatsmusic99.headsplus.config.defaults.CraftingDefaults;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -13,7 +12,7 @@ public class ConfigCrafting extends FeatureConfig {
private static ConfigCrafting instance;
- public ConfigCrafting() throws IOException, IllegalAccessException {
+ public ConfigCrafting() throws Exception {
super("crafting.yml");
instance = this;
}
@@ -23,7 +22,7 @@ public static ConfigCrafting get() {
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
addDefault("defaults.price", 0.0);
addExample("defaults.lore", Lists.newArrayList("&7Price &8» &c{price}"));
addDefault("defaults.sellable", false);
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeads.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeads.java
index 7d75f814..476935dd 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeads.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeads.java
@@ -7,19 +7,17 @@
import io.github.thatsmusic99.headsplus.managers.HeadManager;
import org.bukkit.ChatColor;
-import java.io.IOException;
-
public class ConfigHeads extends HPConfig {
private static ConfigHeads instance;
- public ConfigHeads() throws IOException, IllegalAccessException {
+ public ConfigHeads() throws Exception {
super("heads.yml");
instance = this;
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
addComment("This is the config where entirely custom heads can be made, with custom metadata, actions, etc.\n" +
"To reference a custom head, use HP#head_id.\n" +
"If you're looking for mobs.yml instead to change mob drops, please go there :)");
@@ -32,8 +30,8 @@ public void loadDefaults() {
if (ConfigCustomHeads.get() != null) return;
for (HeadsXEnums head : HeadsXEnums.values()) {
if (isNew() || head.version > getDouble("version")) {
- addDefault("heads." + head.name().toLowerCase() + ".display-name", head.displayName);
- addDefault("heads." + head.name().toLowerCase() + ".texture", head.texture);
+ forceExample("heads." + head.name().toLowerCase() + ".display-name", head.displayName);
+ forceExample("heads." + head.name().toLowerCase() + ".texture", head.texture);
}
}
}
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeadsSelector.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeadsSelector.java
index 82f2ce55..a4c55513 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeadsSelector.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigHeadsSelector.java
@@ -12,7 +12,6 @@
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -23,7 +22,7 @@ public class ConfigHeadsSelector extends FeatureConfig {
private final HashMap buyableHeads = new LinkedHashMap<>();
private int totalHeads = 0;
- public ConfigHeadsSelector() throws IOException, IllegalAccessException {
+ public ConfigHeadsSelector() throws Exception {
super("heads-selector.yml");
instance = this;
}
@@ -38,7 +37,7 @@ public static ConfigHeadsSelector get() {
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
double version = getDouble("version", -1.0);
if (isNew()) version = -1.0;
addComment("This is where you can configure where the heads selector (/heads)");
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInteractions.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInteractions.java
index 5fa0a19d..3b8e8b20 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInteractions.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInteractions.java
@@ -9,7 +9,6 @@
import org.bukkit.block.Skull;
import org.bukkit.entity.Player;
-import java.io.IOException;
import java.lang.reflect.Field;
import java.util.*;
import java.util.regex.Matcher;
@@ -20,7 +19,7 @@ public class ConfigInteractions extends HPConfig {
private static ConfigInteractions instance;
private final Gson gson;
- public ConfigInteractions() throws IOException, IllegalAccessException {
+ public ConfigInteractions() throws Exception {
super("interactions.yml");
instance = this;
gson = new Gson();
@@ -34,7 +33,7 @@ public ConfigInteractions() throws IOException, IllegalAccessException {
Location-specified messages
*/
@Override
- public void loadDefaults() {
+ public void addDefaults() {
double version = getDouble("version");
if (version < 0.1) {
// Default values
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInventories.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInventories.java
index 7fa95eaa..e7cb50fe 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInventories.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigInventories.java
@@ -6,7 +6,6 @@
import io.github.thatsmusic99.headsplus.inventories.InventoryManager;
import io.github.thatsmusic99.headsplus.inventories.list.*;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -15,7 +14,7 @@ public class ConfigInventories extends HPConfig {
private static ConfigInventories instance;
- public ConfigInventories() throws IOException, IllegalAccessException {
+ public ConfigInventories() throws Exception {
super("inventories.yml");
instance = this;
}
@@ -25,7 +24,7 @@ public static ConfigInventories get() {
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
for (InventoryManager.IconType i : InventoryManager.IconType.values()) {
addDefault("icons." + i.getId() + ".material", i.getMaterial());
addDefault("icons." + i.getId() + ".display-name", i.getDisplayName());
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigLevels.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigLevels.java
index c9f6ba88..0a09f92d 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigLevels.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigLevels.java
@@ -4,7 +4,6 @@
import io.github.thatsmusic99.headsplus.api.BaseLevel;
import io.github.thatsmusic99.headsplus.config.challenges.HPChallengeRewardTypes;
-import java.io.IOException;
import java.util.HashMap;
public class ConfigLevels extends FeatureConfig {
@@ -17,7 +16,7 @@ public HashMap getDefLevels() {
private static ConfigLevels instance;
- public ConfigLevels() throws IOException, IllegalAccessException {
+ public ConfigLevels() throws Exception {
super("levels.yml");
instance = this;
addDefLevels();
@@ -28,7 +27,7 @@ public static ConfigLevels get() {
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
double version = 0.3;
double current = getDouble("version");
makeSectionLenient("levels");
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMasks.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMasks.java
index 332f694a..d2d44c3d 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMasks.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMasks.java
@@ -3,20 +3,19 @@
import com.google.common.collect.Lists;
import io.github.thatsmusic99.headsplus.managers.MaskManager;
-import java.io.IOException;
import java.util.Collections;
public class ConfigMasks extends FeatureConfig {
private static ConfigMasks instance;
- public ConfigMasks() throws IOException, IllegalAccessException {
+ public ConfigMasks() throws Exception {
super("masks.yml");
instance = this;
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
makeSectionLenient("masks");
addExample("masks.chicken.when-wearing", new String[0]);
addExample("masks.chicken.effects", Collections.singletonList("SLOW_FALLING"));
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMobs.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMobs.java
index f5cbac1c..bf294bf5 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMobs.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigMobs.java
@@ -18,7 +18,7 @@ public class ConfigMobs extends FeatureConfig {
private static ConfigMobs instance;
- public ConfigMobs() throws IOException, IllegalAccessException {
+ public ConfigMobs() throws Exception {
super("mobs.yml");
instance = this;
}
@@ -28,7 +28,7 @@ public static ConfigMobs get() {
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
addComment("This configuration file has become more complex compared to previous versions.\n" +
"If you have trouble understanding how it works, please use the /hp config mobs command instead.");
addDefault("defaults.lore", new ArrayList<>(Arrays.asList("&7Price &8» &c{price}", "&7Type &8» &c{type}")));
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigSounds.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigSounds.java
index 9bb2a264..4fcf6839 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigSounds.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigSounds.java
@@ -6,7 +6,7 @@ public class ConfigSounds extends HPConfig {
private static ConfigSounds instance;
- public ConfigSounds() throws IOException, IllegalAccessException {
+ public ConfigSounds() throws Exception {
super("sounds.yml");
instance = this;
}
@@ -16,7 +16,7 @@ public static ConfigSounds get() {
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
for (Defaults d : Defaults.values()) {
addDefault("sounds." + d.name + ".sound", "ENTITY_EXPERIENCE_ORB_PICKUP");
addDefault("sounds." + d.name + ".volume", 1.0f);
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigTextMenus.java b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigTextMenus.java
index 4bccec4b..2d854197 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigTextMenus.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/ConfigTextMenus.java
@@ -18,7 +18,6 @@
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -29,7 +28,7 @@ public class ConfigTextMenus extends HPConfig {
private static ConfigTextMenus instance;
- public ConfigTextMenus() throws IOException, IllegalAccessException {
+ public ConfigTextMenus() throws Exception {
super("textmenus.yml");
instance = this;
}
@@ -37,7 +36,7 @@ public ConfigTextMenus() throws IOException, IllegalAccessException {
// TODO - make an interface that all translators override?
@Override
- public void loadDefaults() {
+ public void addDefaults() {
addDefault("default-header", "&c・.&7━━━━━━━━━━━━ &8❰ &c&lHeadsPlus &8❱ &7━━━━━━━━━━━━&c.・");
addDefault("default-header-paged", "&c・.&7━━━━━━━━━━━━ &8❰ &c&lHeadsPlus &7{page}/{pages} &8❱ " +
"&7━━━━━━━━━━━━&c.・");
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/FeatureConfig.java b/src/main/java/io/github/thatsmusic99/headsplus/config/FeatureConfig.java
index e43903ab..eda26d70 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/FeatureConfig.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/FeatureConfig.java
@@ -2,13 +2,11 @@
import org.jetbrains.annotations.NotNull;
-import java.io.IOException;
-
public abstract class FeatureConfig extends HPConfig {
private boolean loaded = false;
- public FeatureConfig(@NotNull String name) throws IOException, IllegalAccessException {
+ public FeatureConfig(@NotNull String name) throws Exception {
super(name);
}
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/HPConfig.java b/src/main/java/io/github/thatsmusic99/headsplus/config/HPConfig.java
index 95cb05b1..0a71016a 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/HPConfig.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/HPConfig.java
@@ -9,35 +9,12 @@
public abstract class HPConfig extends ConfigFile {
- public HPConfig(@NotNull String name) throws IOException {
+ public HPConfig(@NotNull String name) throws Exception {
super(getOrCreateFile(name));
}
- public void load() {
- loadDefaults();
- moveToNew();
- try {
- save();
- } catch (Exception e) {
- e.printStackTrace();
- return;
- }
- postSave();
- if (this instanceof FeatureConfig) {
- ((FeatureConfig) this).setLoaded(true);
- }
- }
-
- public abstract void loadDefaults();
-
- public void moveToNew() {
- }
-
- public void postSave() {
- }
-
@Override
- public void reload() throws IOException {
+ public void reload() throws Exception {
super.reload();
moveToNew();
save();
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/MainConfig.java b/src/main/java/io/github/thatsmusic99/headsplus/config/MainConfig.java
index a6ecb3c6..05b1fdb0 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/MainConfig.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/MainConfig.java
@@ -8,7 +8,6 @@
import org.bukkit.permissions.Permission;
import org.bukkit.permissions.PermissionDefault;
-import java.io.IOException;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
@@ -35,13 +34,13 @@ public class MainConfig extends HPConfig {
private static MainConfig instance;
- public MainConfig() throws IOException, IllegalAccessException {
+ public MainConfig() throws Exception {
super("config.yml");
instance = this;
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
setTitle(new Title().withWidth(100)
.addSolidLine()
.addLine("HeadsPlus v7", Title.Pos.CENTER)
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/challenges/ConfigChallenges.java b/src/main/java/io/github/thatsmusic99/headsplus/config/challenges/ConfigChallenges.java
index 67d2dd44..e8256669 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/challenges/ConfigChallenges.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/challenges/ConfigChallenges.java
@@ -5,7 +5,6 @@
import io.github.thatsmusic99.headsplus.config.MainConfig;
import io.github.thatsmusic99.headsplus.managers.EntityDataManager;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -13,13 +12,13 @@ public class ConfigChallenges extends FeatureConfig {
private static ConfigChallenges instance;
- public ConfigChallenges() throws IOException, IllegalAccessException {
+ public ConfigChallenges() throws Exception {
super("challenges.yml");
instance = this;
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
addDefault("options.current-version", 1.3);
addDefault("options.prepare-icons", true);
addDefault("options.prepare-rewards", true);
diff --git a/src/main/java/io/github/thatsmusic99/headsplus/config/customheads/ConfigCustomHeads.java b/src/main/java/io/github/thatsmusic99/headsplus/config/customheads/ConfigCustomHeads.java
index 6959670c..652f5071 100644
--- a/src/main/java/io/github/thatsmusic99/headsplus/config/customheads/ConfigCustomHeads.java
+++ b/src/main/java/io/github/thatsmusic99/headsplus/config/customheads/ConfigCustomHeads.java
@@ -1,26 +1,25 @@
package io.github.thatsmusic99.headsplus.config.customheads;
-import io.github.thatsmusic99.headsplus.HeadsPlus;
+import io.github.thatsmusic99.headsplus.HeadsPlus;
import io.github.thatsmusic99.headsplus.config.ConfigHeads;
import io.github.thatsmusic99.headsplus.config.ConfigHeadsSelector;
import io.github.thatsmusic99.headsplus.config.HPConfig;
import io.github.thatsmusic99.headsplus.config.MainConfig;
import java.io.File;
-import java.io.IOException;
@Deprecated
public class ConfigCustomHeads extends HPConfig {
public static ConfigCustomHeads instance;
- public ConfigCustomHeads() throws IOException, IllegalAccessException {
+ public ConfigCustomHeads() throws Exception {
super("customheads.yml");
instance = this;
}
@Override
- public void loadDefaults() {
+ public void addDefaults() {
makeSectionLenient("heads");
makeSectionLenient("sections");
makeSectionLenient("options");