Hidden config and use of NullChunkletManager

ChunkletManagerFactory now produces NullChunkletManagers if Chunklets are disabeld in the hidden.yml
This commit is contained in:
NuclearW 2012-05-18 22:01:15 -04:00
parent 2936823d03
commit 01006ed76d
4 changed files with 62 additions and 2 deletions

View File

@ -0,0 +1,44 @@
package com.gmail.nossr50.config;
import org.bukkit.configuration.file.YamlConfiguration;
import com.gmail.nossr50.mcMMO;
public class HiddenConfig extends ConfigLoader {
private static String fileName;
private static HiddenConfig instance;
private static YamlConfiguration config;
private static boolean chunkletsEnabled;
public HiddenConfig(mcMMO plugin, String fileName) {
super(plugin, fileName);
HiddenConfig.fileName = fileName;
}
public static HiddenConfig getInstance() {
if (instance == null) {
instance = new HiddenConfig(mcMMO.p, "hidden.yml");
instance.load();
}
return instance;
}
@Override
protected void load() {
if(plugin.isInJar(fileName)) loadKeys();
}
@Override
protected void loadKeys() {
config = YamlConfiguration.loadConfiguration(plugin.getResource(fileName));
chunkletsEnabled = config.getBoolean("Options.Chunklets", true);
}
public boolean getChunkletsEnabled() {
return chunkletsEnabled;
}
}

View File

@ -7,6 +7,7 @@ import com.gmail.nossr50.commands.mc.*;
import com.gmail.nossr50.commands.party.*; import com.gmail.nossr50.commands.party.*;
import com.gmail.nossr50.commands.general.*; import com.gmail.nossr50.commands.general.*;
import com.gmail.nossr50.config.Config; import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.HiddenConfig;
import com.gmail.nossr50.config.TreasuresConfig; import com.gmail.nossr50.config.TreasuresConfig;
import com.gmail.nossr50.config.mods.CustomBlocksConfig; import com.gmail.nossr50.config.mods.CustomBlocksConfig;
import com.gmail.nossr50.config.mods.CustomArmorConfig; import com.gmail.nossr50.config.mods.CustomArmorConfig;
@ -74,6 +75,7 @@ public class mcMMO extends JavaPlugin {
//Force the loading of config files //Force the loading of config files
Config configInstance = Config.getInstance(); Config configInstance = Config.getInstance();
TreasuresConfig.getInstance(); TreasuresConfig.getInstance();
HiddenConfig.getInstance();
if (configInstance.getToolModsEnabled()) { if (configInstance.getToolModsEnabled()) {
CustomToolsConfig.getInstance().load(); CustomToolsConfig.getInstance().load();

View File

@ -1,8 +1,15 @@
package com.gmail.nossr50.util.blockmeta; package com.gmail.nossr50.util.blockmeta;
import com.gmail.nossr50.config.HiddenConfig;
public class ChunkletManagerFactory { public class ChunkletManagerFactory {
public static ChunkletManager getChunkletManager() { public static ChunkletManager getChunkletManager() {
// TODO: Add in loading from config what type of manager we want. HiddenConfig hConfig = HiddenConfig.getInstance();
if(hConfig.getChunkletsEnabled()) {
return new HashChunkletManager(); return new HashChunkletManager();
} else {
return new NullChunkletManager();
}
} }
} }

View File

@ -0,0 +1,7 @@
#
# WARNING: THIS CONFIG IS FOR ADVANCED USERS ONLY.
# You will need to reset any values in this config every time you update mcMMO
###
Options:
# true to use Chunklets metadata store system, false to disable
Chunklets: true