diff options
Diffstat (limited to 'src/main/java/bloodasp/galacticgreg/auxiliary/ConfigManager.java')
-rw-r--r-- | src/main/java/bloodasp/galacticgreg/auxiliary/ConfigManager.java | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/src/main/java/bloodasp/galacticgreg/auxiliary/ConfigManager.java b/src/main/java/bloodasp/galacticgreg/auxiliary/ConfigManager.java new file mode 100644 index 0000000000..9f337f945e --- /dev/null +++ b/src/main/java/bloodasp/galacticgreg/auxiliary/ConfigManager.java @@ -0,0 +1,81 @@ +package bloodasp.galacticgreg.auxiliary; + +import java.io.File; + +import bloodasp.galacticgreg.GalacticGreg; +import net.minecraftforge.common.config.Configuration; + +/** + * config class to read/setup config files and folders + * @author Namikon + */ +public abstract class ConfigManager { + private File _mainconfigDir = null; + private File _blocksconfigDir = null; + private String _mModCollection = ""; + private String _mModID = ""; + + protected Configuration _mainConfig = null; + + protected File _mConfigBaseDirectory; + public boolean DoDebugMessages = false; + + protected abstract void PreInit(); + protected abstract void Init(); + protected abstract void PostInit(); + + + public ConfigManager(File pConfigBaseDirectory, String pModCollectionDirectory, String pModID) + { + _mModCollection = pModCollectionDirectory; + _mModID = pModID; + _mConfigBaseDirectory = pConfigBaseDirectory; + } + + /** + * Load/init the config file + * @return true/false if the load/init was successful or not + */ + public boolean LoadConfig() + { + try + { + InitConfigDirs(); + if (_mainConfig == null) + return false; + + PreInit(); + _mainConfig.load(); + Init(); + _mainConfig.save(); + PostInit(); + + return true; + } + catch (Exception e) + { + GalacticGreg.Logger.error("Unable to init config file"); + e.printStackTrace(); + return false; + } + } + + /** + * Search for required config-directory / file and create them if they can't be found + */ + private void InitConfigDirs() + { + GalacticGreg.Logger.debug("Checking/creating config folders"); + + _mainconfigDir = new File(String.format("%s%s%s", _mConfigBaseDirectory, File.separator, _mModCollection)); + + if(!_mainconfigDir.exists()) { + GalacticGreg.Logger.info("Config folder not found. Creating..."); + _mainconfigDir.mkdir(); + } + + File tRealConfigFile = new File(String.format("%s%s%s%s", _mainconfigDir, File.separator, _mModID, ".cfg")); + + _mainConfig = new Configuration(tRealConfigFile); + } +}
\ No newline at end of file |