diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java index 7b5f5f898..c34067ead 100644 --- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java +++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java @@ -5,10 +5,13 @@ import com.gmail.nossr50.datatypes.skills.SubSkillType; import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill; import com.gmail.nossr50.mcMMO; import net.md_5.bungee.api.ChatColor; +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; import java.util.ArrayList; import java.util.List; +@ConfigSerializable public class AdvancedConfig extends ConfigLoaderConfigurable { private static AdvancedConfig instance; @@ -24,6 +27,9 @@ public class AdvancedConfig extends ConfigLoaderConfigurable { return instance; } + @Setting(value = "Skills.General.StartingLevel", comment = "The starting level for players on your server.\nHistorically this has been 0.\nRecently is has changed to 1.") + private int startingLevel = 1; + @Override public List validateKeys() { // Validate all the settings! @@ -369,7 +375,7 @@ public class AdvancedConfig extends ConfigLoaderConfigurable { } /* GENERAL */ - public int getStartingLevel() { return getIntValue("Skills.General.StartingLevel"); } + public int getStartingLevel() { return startingLevel; } /** * This returns the maximum level at which superabilities will stop lengthening from scaling alongside skill level. diff --git a/src/main/java/com/gmail/nossr50/config/ConfigLoaderConfigurable.java b/src/main/java/com/gmail/nossr50/config/ConfigLoaderConfigurable.java index ea90c44f6..c3e5c59cb 100644 --- a/src/main/java/com/gmail/nossr50/config/ConfigLoaderConfigurable.java +++ b/src/main/java/com/gmail/nossr50/config/ConfigLoaderConfigurable.java @@ -3,6 +3,8 @@ package com.gmail.nossr50.config; import com.gmail.nossr50.mcMMO; import com.google.common.io.Files; import ninja.leaping.configurate.ConfigurationNode; +import ninja.leaping.configurate.commented.CommentedConfigurationNode; +import ninja.leaping.configurate.loader.ConfigurationLoader; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; import ninja.leaping.configurate.yaml.YAMLConfigurationLoader; @@ -37,6 +39,10 @@ public abstract class ConfigLoaderConfigurable implements DefaultKeys { private ConfigurationNode userRootNode = null; private ConfigurationNode defaultRootNode = null; + private CommentedConfigurationNode userCommentedRootNode = null; + + /* CONFIG MANAGER */ + private ConfigurationLoader configManager; //TODO: Needed? //private ConfigurationLoader configManager; @@ -105,6 +111,9 @@ public abstract class ConfigLoaderConfigurable implements DefaultKeys { final ConfigurationNode userConfig = this.userCopyLoader.load(); userRootNode = userConfig; + //TESTING THIS + userCommentedRootNode = configManager.load(); + } catch (IOException e) { e.printStackTrace(); } @@ -282,28 +291,23 @@ public abstract class ConfigLoaderConfigurable implements DefaultKeys { return userRootNode; } - /** - * Attempts to get an int value from the config - * @param path path the node from the root node - * @return int value of the node - */ int getIntValue(String path) { - return userRootNode.getNode(path).getInt(); + return userRootNode.getNode(path.split(".")).getInt(); } double getDoubleValue(String path) { - return userRootNode.getNode(path).getDouble(); + return userRootNode.getNode(path.split(".")).getDouble(); } boolean getBooleanValue(String path) { - return userRootNode.getNode(path).getBoolean(); + return userRootNode.getNode(path.split(".")).getBoolean(); } String getStringValue(String path) { - return userRootNode.getNode(path).getString(); + return userRootNode.getNode(path.split(".")).getString(); } } diff --git a/src/main/java/com/gmail/nossr50/config/ConfigurableTest.java b/src/main/java/com/gmail/nossr50/config/ConfigurableTest.java index 7e5033678..a20ebb9e3 100644 --- a/src/main/java/com/gmail/nossr50/config/ConfigurableTest.java +++ b/src/main/java/com/gmail/nossr50/config/ConfigurableTest.java @@ -1,18 +1,21 @@ package com.gmail.nossr50.config; import com.gmail.nossr50.mcMMO; +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; import java.util.List; +@ConfigSerializable public class ConfigurableTest extends ConfigLoaderConfigurable { public final static String relativePath = "configurabletest.yml"; private static ConfigurableTest instance; - - public ConfigurableTest() { super(mcMMO.p.getDataFolder(), relativePath); + + mcMMO.p.getLogger().severe("The value of bone "+boneValue); } public static ConfigurableTest getInstance() { @@ -22,6 +25,9 @@ public class ConfigurableTest extends ConfigLoaderConfigurable { return instance; } + @Setting(value = "woof.bone", comment = "Finally we have found the value of bone") + double boneValue = 9.4447; + @Override public List validateKeys() { return null; diff --git a/src/main/resources/configurabletest.yml b/src/main/resources/configurabletest.yml index 01e4a92f8..0b70a3cf4 100644 --- a/src/main/resources/configurabletest.yml +++ b/src/main/resources/configurabletest.yml @@ -6,4 +6,4 @@ TheBidoofNotation: Woof: Bark: Meow: "Reeeee" - Bone: 8.3827 \ No newline at end of file + Bone: 9.4447 \ No newline at end of file