new config system pt 2

This commit is contained in:
nossr50 2019-02-11 04:12:34 -08:00
parent 69fa10559c
commit 0f743a55b5
4 changed files with 36 additions and 11 deletions

View File

@ -0,0 +1,5 @@
package com.gmail.nossr50;
public interface DefaultKeys {
boolean validateKeys();
}

View File

@ -1,5 +1,6 @@
package com.gmail.nossr50.config; package com.gmail.nossr50.config;
import com.gmail.nossr50.DefaultKeys;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;
import com.google.common.io.Files; import com.google.common.io.Files;
import ninja.leaping.configurate.ConfigurationNode; import ninja.leaping.configurate.ConfigurationNode;
@ -9,13 +10,12 @@ import ninja.leaping.configurate.yaml.YAMLConfigurationLoader;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.Map;
/** /**
* Handles loading and cacheing configuration settings from a configurable compatible config file * Handles loading and cacheing configuration settings from a configurable compatible config file
*/ */
@ConfigSerializable @ConfigSerializable
public abstract class ConfigLoaderConfigurable { public abstract class ConfigLoaderConfigurable implements DefaultKeys {
/* PATH VARS */ /* PATH VARS */
@ -65,6 +65,8 @@ public abstract class ConfigLoaderConfigurable {
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
validateKeys(); // Validate Keys
} }
/** /**
@ -215,10 +217,8 @@ public abstract class ConfigLoaderConfigurable {
int version = this.rootNode.getNode("ConfigVersion").getInt(); int version = this.rootNode.getNode("ConfigVersion").getInt();
mcMMO.p.getLogger().info(FILE_RELATIVE_PATH + " version is " + version); mcMMO.p.getLogger().info(FILE_RELATIVE_PATH + " version is " + version);
//Update our config
updateConfig(); updateConfig();
//Update config version
updateConfigVersion();
} }
/** /**
@ -226,10 +226,18 @@ public abstract class ConfigLoaderConfigurable {
*/ */
private void updateConfig() private void updateConfig()
{ {
for(Object key : defaultRootNode.getChildrenMap().keySet()) boolean addedValues = false;
{
mcMMO.p.getLogger().info(defaultRootNode.getChildrenMap().size() +" items in default children map");
mcMMO.p.getLogger().info(rootNode.getChildrenMap().size() +" items in default root map");
if(addedValues)
{
System.out.println("[mcMMO INFO] New config options were added, edit "+FILE_RELATIVE_PATH+" to customize!");
} }
// Update config version
updateConfigVersion();
} }
/** /**
@ -237,15 +245,15 @@ public abstract class ConfigLoaderConfigurable {
*/ */
private void updateConfigVersion() { private void updateConfigVersion() {
// Set a version for our config // Set a version for our config
/*this.rootNode.getNode("ConfigVersion").setValue(getConfigVersion()); this.rootNode.getNode("ConfigVersion").setValue(getConfigVersion());
mcMMO.p.getLogger().info("Updated config to ["+getConfigVersion()+"] - " + FILE_RELATIVE_PATH);*/ mcMMO.p.getLogger().info("Updated config to ["+getConfigVersion()+"] - " + FILE_RELATIVE_PATH);
} }
/** /**
* Returns the root node of this config * Returns the root node of this config
* @return the root node of this config * @return the root node of this config
*/ */
public ConfigurationNode getRootNode() { protected ConfigurationNode getRootNode() {
return rootNode; return rootNode;
} }
} }

View File

@ -7,6 +7,8 @@ public class ConfigurableTest extends ConfigLoaderConfigurable {
public final static String relativePath = "configurabletest.yml"; public final static String relativePath = "configurabletest.yml";
private static ConfigurableTest instance; private static ConfigurableTest instance;
public ConfigurableTest() { public ConfigurableTest() {
super(mcMMO.p.getDataFolder(), relativePath); super(mcMMO.p.getDataFolder(), relativePath);
} }
@ -18,4 +20,8 @@ public class ConfigurableTest extends ConfigLoaderConfigurable {
return instance; return instance;
} }
@Override
public boolean validateKeys() {
return false;
}
} }

View File

@ -1,3 +1,9 @@
# The writing is on the wall!
TheBidoofNotation: TheBidoofNotation:
MudkipSquareRoot: 7 MudkipSquareRoot: 7
CharmanderDivisor: 2 CharmanderDivisor: 2
# Woof!
Woof:
Bark:
Meow: "Reeeee"
Bone: 8.3827