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");