package com.vapourdrive.attaineddrops.config;

import java.io.File;

import com.vapourdrive.attaineddrops.blocks.BlockInfo;

import net.minecraft.util.StatCollector;
import net.minecraftforge.common.config.Configuration;

public class ADConfig
{

	public static Configuration config;

	private static final String CATEGORY_BLOCKUPDATES = "Block Updates";
	private static final String CATEGORY_BLOCKOPTIONS = "Block Options";

	public static void init(File adConfig)
	{
		config = new Configuration(adConfig);

		config.load();
		System.out.println("[Attained Drops]Generating config for Attained Drops");

		// Block Update times
		BlockInfo.BlockMobPlantUpdate = config.getInt(BlockInfo.BlockMobPlantUpdateName, CATEGORY_BLOCKUPDATES,
				BlockInfo.BlockMobPlantUpdateDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.BlockMobPlantUpdateMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.BlockMobPlantUpdateComment"));

		BlockInfo.BlockMobDirtReset = config.getInt(BlockInfo.BlockModDirtResetName, CATEGORY_BLOCKUPDATES,
				BlockInfo.BlockMobDirtResetDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.BlockMobPlantUpdateMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.BlockMobDirtResetComment"));

		BlockInfo.BlockConcentrateDropUpate = config.getInt(BlockInfo.BlockConcentrateDropName, CATEGORY_BLOCKUPDATES,
				BlockInfo.BlockConcentrateDropUpateDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.BlockMobPlantUpdateMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.BlockMobDirtResetComment"));

		BlockInfo.CanBulbBonemeal = config.getBoolean(BlockInfo.CanBulbBonemealName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.CanBulbBonemealDefault, StatCollector.translateToLocal("phrase.AttainedDrops.CanBulbBonemealComment"));
		
		BlockInfo.ParticleBulb = config.getBoolean(BlockInfo.ParticleBulbName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.ParticleBulbDefault, StatCollector.translateToLocal("phrase.AttainedDrops.CanBulbParticleComment"));

		BlockInfo.ChancetoBonemealBulb = config.getInt(BlockInfo.ChancetoBonemealBulbName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.ChancetoBonemealBulbDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.ChancetoBonemealBulbMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.ChancetoBonemealBulbComment"));
		
		BlockInfo.ChancetoParticle = config.getInt(BlockInfo.ChancetoParticleName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.ChancetoParticleDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.ChancetoParticleMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.ChancetoParticleComment"));

		config.save();

	}

}

package com.vapourdrive.attaineddrops.config;

import java.io.File;

import com.vapourdrive.attaineddrops.blocks.BlockInfo;

import net.minecraft.util.StatCollector;
import net.minecraftforge.common.config.Configuration;

public class ADConfig
{

	public static Configuration config;

	private static final String CATEGORY_BLOCKUPDATES = "Block Updates";
	private static final String CATEGORY_BLOCKOPTIONS = "Block Options";

	public static void init(File adConfig)
	{
		config = new Configuration(adConfig);

		config.load();
		System.out.println("[Attained Drops]Generating config for Attained Drops");

		// Block Update times
		BlockInfo.BlockMobPlantUpdate = config.getInt(BlockInfo.BlockMobPlantUpdateName, CATEGORY_BLOCKUPDATES,
				BlockInfo.BlockMobPlantUpdateDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.BlockMobPlantUpdateMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.BlockMobPlantUpdateComment"));

		BlockInfo.BlockMobDirtReset = config.getInt(BlockInfo.BlockModDirtResetName, CATEGORY_BLOCKUPDATES,
				BlockInfo.BlockMobDirtResetDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.BlockMobPlantUpdateMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.BlockMobDirtResetComment"));

		BlockInfo.BlockConcentrateDropUpate = config.getInt(BlockInfo.BlockConcentrateDropName, CATEGORY_BLOCKUPDATES,
				BlockInfo.BlockConcentrateDropUpateDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.BlockMobPlantUpdateMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.BlockMobConcetrateDropComment"));

		BlockInfo.CanBulbBonemeal = config.getBoolean(BlockInfo.CanBulbBonemealName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.CanBulbBonemealDefault, StatCollector.translateToLocal("phrase.AttainedDrops.CanBulbBonemealComment"));
		
		BlockInfo.ParticleBulb = config.getBoolean(BlockInfo.ParticleBulbName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.ParticleBulbDefault, StatCollector.translateToLocal("phrase.AttainedDrops.CanBulbParticleComment"));

		BlockInfo.ChancetoBonemealBulb = config.getInt(BlockInfo.ChancetoBonemealBulbName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.ChancetoBonemealBulbDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.ChancetoBonemealBulbMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.ChancetoBonemealBulbComment"));
		
		BlockInfo.ChancetoParticle = config.getInt(BlockInfo.ChancetoParticleName, CATEGORY_BLOCKOPTIONS,
				BlockInfo.ChancetoParticleDefault, BlockInfo.BlockMobPlantUpdateMin, BlockInfo.ChancetoParticleMax,
				StatCollector.translateToLocal("phrase.AttainedDrops.ChancetoParticleComment"));

		config.save();

	}

}

Fix for the "Wrong text in config" - "Vitalized Soil Planter" update was using "Vitalized Soil" update comment Note - closely watch config copy/pastes :/