extrabiomes.handlers.ConfigurationHandler.java Source code

Java tutorial

Introduction

Here is the source code for extrabiomes.handlers.ConfigurationHandler.java

Source

/**
 * This work is licensed under the Creative Commons
 * Attribution-ShareAlike 3.0 Unported License. To view a copy of this
 * license, visit http://creativecommons.org/licenses/by-sa/3.0/.
 */

package extrabiomes.handlers;

import java.io.File;
import java.util.logging.Level;

import net.minecraftforge.common.ConfigCategory;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.Property;

import com.google.common.base.Optional;

import extrabiomes.helpers.LogHelper;
import extrabiomes.lib.BiomeSettings;
import extrabiomes.lib.BlockSettings;
import extrabiomes.lib.DecorationSettings;
import extrabiomes.lib.GeneralSettings;
import extrabiomes.lib.ItemSettings;
import extrabiomes.lib.ModuleControlSettings;
import extrabiomes.lib.Reference;
import extrabiomes.lib.SaplingSettings;
import extrabiomes.utility.EnhancedConfiguration;

/**
 * Loads configuration data
 * 
 */
public abstract class ConfigurationHandler {

    public static void init(File configFile) {
        Optional<EnhancedConfiguration> optionalConfig = Optional.absent();

        try {
            optionalConfig = Optional.of(new EnhancedConfiguration(configFile));
            final EnhancedConfiguration configuration = optionalConfig.get();

            for (final BiomeSettings setting : BiomeSettings.values()) {
                setting.load(configuration);
            }

            for (final DecorationSettings setting : DecorationSettings.values()) {
                setting.load(configuration);
            }

            for (final BlockSettings setting : BlockSettings.values()) {
                setting.load(configuration);
            }

            for (final ItemSettings setting : ItemSettings.values()) {
                setting.load(configuration);
            }

            configuration.addCustomCategoryComment("saplingreplanting",
                    "Settings to configure the chance that saplings will replant themselves up despawning on valid soil.");
            for (final SaplingSettings setting : SaplingSettings.values()) {
                setting.load(configuration);
            }

            for (final ModuleControlSettings setting : ModuleControlSettings.values()) {
                setting.load(configuration);
            }

            Property bigTreeSaplingDropRateProperty = configuration.get(Configuration.CATEGORY_GENERAL,
                    "Relative sapling drops", false);
            bigTreeSaplingDropRateProperty.comment = "Setting relative sapling drops to true will decrease the amount of saplings dropped by decaying fir and redwood leaf blocks to a more reasonable amount.";
            GeneralSettings.bigTreeSaplingDropModifier = bigTreeSaplingDropRateProperty.getBoolean(false);

            //
            Property consoleCommandsDisabled = configuration.get(Configuration.CATEGORY_GENERAL,
                    "DisableConsoleCommands", true);
            consoleCommandsDisabled.comment = "Set to false to enable console commands.";
            GeneralSettings.consoleCommandsDisabled = consoleCommandsDisabled.getBoolean(true);

        } catch (final Exception e) {
            LogHelper.log(Level.SEVERE, e, "%s had had a problem loading its configuration", Reference.MOD_NAME);
        } finally {
            if (optionalConfig.isPresent())
                optionalConfig.get().save();
        }
    }
}