mcMMO/src/main/java/com/gmail/nossr50/config/ConfigLoader.java

78 lines
1.9 KiB
Java
Raw Normal View History

2012-03-18 21:35:47 +01:00
package com.gmail.nossr50.config;
import java.io.File;
import java.io.IOException;
import org.bukkit.configuration.file.FileConfiguration;
2012-05-23 19:52:33 +02:00
import org.bukkit.configuration.file.YamlConfiguration;
2012-03-18 21:35:47 +01:00
import com.gmail.nossr50.mcMMO;
2012-03-18 21:35:47 +01:00
public abstract class ConfigLoader {
protected String fileName;
protected File configFile;
protected File dataFolder;
protected final mcMMO plugin;
protected FileConfiguration config;
2012-03-18 21:35:47 +01:00
public ConfigLoader(mcMMO plugin, String fileName){
2012-03-18 21:35:47 +01:00
this.plugin = plugin;
this.fileName = fileName;
2012-03-18 21:35:47 +01:00
dataFolder = plugin.getDataFolder();
configFile = new File(dataFolder, File.separator + fileName);
config = YamlConfiguration.loadConfiguration(configFile);
2012-03-18 21:35:47 +01:00
}
/**
* Load this config file.
*/
2012-05-23 19:52:33 +02:00
public void load() {
if (!configFile.exists()) {
dataFolder.mkdir();
saveConfig();
}
addDefaults();
loadKeys();
}
2012-03-18 21:35:47 +01:00
/**
* Save this config file.
*/
private void saveConfig() {
2012-03-18 21:35:47 +01:00
try {
config.save(configFile);
}
2012-05-23 19:52:33 +02:00
catch (IOException ex) {
plugin.getLogger().severe("Could not save config to " + configFile + ex);
2012-03-18 21:35:47 +01:00
}
}
protected void saveIfNotExist() {
if (!configFile.exists()) {
if (plugin.getResource(fileName) != null) {
plugin.saveResource(fileName, false);
}
}
rereadFromDisk();
}
protected void rereadFromDisk() {
config = YamlConfiguration.loadConfiguration(configFile);
}
2012-03-18 21:35:47 +01:00
/**
* Add the defaults to this config file.
*/
protected void addDefaults() {
config.options().copyDefaults(true);
saveConfig();
}
/**
* Load the keys from this config file.
*/
protected abstract void loadKeys();
}