My config file just an empty
import java.io.File;
import com.hesperus_rus.complicatedvanillacraftingrecipes.CVCRInformation;
import net.minecraftforge.common.config.Config;
import net.minecraftforge.common.config.ConfigManager;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.relauncher.Side;
public class CVCRConfig {
public static Configuration config;
public static int GUI_CLAY_FURNACE = 0;
public static int ClayFurnaceCookTime = 1000;
public static boolean canShowUpdates = false;
public static void loadConfig(File configFile) {
config = new Configuration(configFile);
config.load();
}
public static void load() {
String desc;
desc = "GUI ID";
config.addCustomCategoryComment(desc, "Set the ID's for the GUI's to ensure that they don't clash with other mod's id's");
GUI_CLAY_FURNACE = config.getInt("Clay Furnace GUI ID", desc, 0, 0, 100, "Set the ID for the Clay Furnace");
desc = "Clay Furnace Burning Time";
config.addCustomCategoryComment(desc, "Set your need value");
ClayFurnaceCookTime = config.getInt("ClayFurnaceCookTime", "desc", 1000, 400, 1600, "Increased Cook Time");
desc = "Version checking of the CVCR";
config.addCustomCategoryComment(desc, "Show Updates for Complicated Vanilla Crafting Recipes");
canShowUpdates = config.getBoolean("Show Updates", "Version checking of the CVCR", false, "If true, Complicated Vanilla Crafting Recipes will be displayed available updates in Minecraft. If false, Complicated Vanilla Crafting Recipes not will be checking available updates and display in the chat.", desc);
if(config.hasChanged()) {
config.save();
}
}
@Mod.EventBusSubscriber(value = Side.CLIENT, modid = CVCRInformation.MOD_ID)
public static class EventHandler {
@SubscribeEvent
public static void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent e) {
if(e.getModID().equals(CVCRInformation.MOD_ID)) {
ConfigManager.sync(CVCRInformation.MOD_ID, Config.Type.INSTANCE);
} load();
}
}
}
And GuiFactory
import java.util.Set;
import com.hesperus_rus.guiconfig.GuiCVCRConfig;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.fml.client.IModGuiFactory;
public class GuiFactory implements IModGuiFactory {
@Override
public void initialize(Minecraft minecraftInstance) {}
@Override
public boolean hasConfigGui() {
return true;
}
@Override
public GuiScreen createConfigGui(GuiScreen parentScreen) {
return new GuiCVCRConfig(parentScreen);
}
@Override
public Set<RuntimeOptionCategoryElement> runtimeGuiCategories() {
return null;
}
}
And else
import com.hesperus_rus.complicatedvanillacraftingrecipes.CVCRInformation;
import com.hesperus_rus.config.CVCRConfig;
import net.minecraft.client.gui.GuiScreen;
import net.minecraftforge.common.config.ConfigElement;
import net.minecraftforge.common.config.Configuration;
import net.minecraftforge.fml.client.config.GuiConfig;
public class GuiCVCRConfig extends GuiConfig {
public GuiCVCRConfig(GuiScreen parentScreen) {
super(parentScreen, new ConfigElement(CVCRConfig.config.getCategory(Configuration.CATEGORY_CLIENT)).getChildElements(), CVCRInformation.MOD_ID, false, false, GuiConfig.getAbridgedConfigPath(CVCRConfig.config.toString()));
}
}
CVCRInformation
public static final String GUI_FACTORY = "com.hesperus_rus.complicatedvanillacraftingrecipes.proxy.GuiFactory";
Main class
import java.io.File;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.hesperus_rus.complicatedvanillacraftingrecipes.CVCRInformation;
import com.hesperus_rus.complicatedvanillacraftingrecipes.proxy.CommonProxy;
import com.hesperus_rus.config.CVCRConfig;
import com.hesperus_rus.misc.BlocksTab;
import com.hesperus_rus.misc.ComplicatedVanillaCraftingRecipesTab;
import com.hesperus_rus.version.CVCRVersionChecking;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.ModMetadata;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
@Mod(modid = CVCRInformation.MOD_ID,
name = CVCRInformation.MOD_NAME,
version = CVCRInformation.MOD_VERSION,
acceptableRemoteVersions = CVCRInformation.MOD_VERSION,
useMetadata = true,
acceptedMinecraftVersions = CVCRInformation.ACCEPTED_VERSIONS,
guiFactory = CVCRInformation.GUI_FACTORY,
dependencies = "required-after:forge@[14.23.5.2768,)")
public class ComplicatedVanillaCraftingRecipes {
public static Logger LOGGER = LogManager.getLogger(CVCRInformation.MOD_ID);
@Mod.Instance(CVCRInformation.MOD_ID)
public static ComplicatedVanillaCraftingRecipes instanse;
@Mod.Metadata(CVCRInformation.MOD_ID)
public static ModMetadata metadata;
public static final ComplicatedVanillaCraftingRecipesTab ComplicatedVanillaCraftingRecipes = new ComplicatedVanillaCraftingRecipesTab("complicatedvanillacraftingrecipes");
public static final BlocksTab BlocksTab = new BlocksTab("blocks");
@SidedProxy(clientSide = "com.hesperus_rus.complicatedvanillacraftingrecipes.proxy.ClientProxy", serverSide = "com.hesperus_rus.complicatedvanillacraftingrecipes.proxy.ServerProxy")
public static CommonProxy proxy;
public static File config;
public static CVCRVersionChecking checking;
public static boolean wasWarnedNewVersion = false;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent e) {
CVCRConfig.loadConfig(e.getSuggestedConfigurationFile());
e.getModMetadata().version = CVCRInformation.MOD_VERSION;
LOGGER = e.getModLog();
proxy.preInit(e);
}
@Mod.EventHandler
public void init(FMLInitializationEvent e) {
proxy.init(e);
}
@Mod.EventHandler
public void postInit(FMLPostInitializationEvent e) {
proxy.postInit(e);
}
@SubscribeEvent
public void onNameFormat(PlayerEvent.NameFormat event) {
if (event.getUsername().compareTo("hesperus_rus") == 0) {
event.setDisplayname(TextFormatting.DARK_GREEN + event.getUsername());
}
}
}