Glistre Posted March 31, 2016 Posted March 31, 2016 First, sorry I am still on 1.7.10 I will move on very, very quickly, believe me. Everything seems to work fine on my custom config but it does not really save correctly. If you change the config once the game is launched the config will not save/ overwrite the config it started with ...meaning you have to actually edit the config file .. That's probably because it's 1.7.10? package com.glistre.glistremod.lib; import com.glistre.glistremod.GlistreMod; import cpw.mods.fml.common.FMLCommonHandler; import net.minecraftforge.common.config.Configuration; public class ConfigurationGlistre { public static boolean cheapRecipe; //ore attempt public static boolean enableWorldGeneration; // //ID attempt public static int biomeGlistreID; public static int biomeFreonID; public static int dimensionId; public static final boolean CHEAPRECIPE_DEFAULT = false; public static final String CHEAPRECIPE_NAME = "Enables the cheap recipe for the Silver Sword and Glistering Bread"; public static final boolean WORLDSETTINGS_DEFAULT = true; public static final String WORLD_SETTINGS = "Allows custom ore to generate in the world."; public static final String CATEGORY_BIOME = "Change the ID of the Biomes"; public static final String CATEGORY_DIMENSION = "Change the ID of the Dimension"; public static void loadConfig(){ FMLCommonHandler.instance().bus().register(GlistreMod.instance); // recipes final String RECIPES = GlistreMod.config.CATEGORY_GENERAL + GlistreMod.config.CATEGORY_SPLITTER + "Recipes"; GlistreMod.config.addCustomCategoryComment(RECIPES, "Enable or disable recipes"); cheapRecipe = GlistreMod.config.get(RECIPES, CHEAPRECIPE_NAME, CHEAPRECIPE_DEFAULT).getBoolean(CHEAPRECIPE_DEFAULT); // world settings final String WORLDGEN = GlistreMod.config.CATEGORY_GENERAL + GlistreMod.config.CATEGORY_SPLITTER + "World Settings"; GlistreMod.config.addCustomCategoryComment(WORLDGEN, "Enable or disable world settings"); enableWorldGeneration = GlistreMod.config.get(WORLDGEN, WORLD_SETTINGS, WORLDSETTINGS_DEFAULT).getBoolean(WORLDSETTINGS_DEFAULT); final String CATEGORY_BIOME = GlistreMod.config.CATEGORY_GENERAL + GlistreMod.config.CATEGORY_SPLITTER + "Biomes"; GlistreMod.config.addCustomCategoryComment(CATEGORY_BIOME, "ID of the Biomes"); biomeGlistreID = GlistreMod.config.get(Configuration.CATEGORY_GENERAL, "Glistering Biome ID", 155).getInt(); biomeFreonID = GlistreMod.config.get(Configuration.CATEGORY_GENERAL, "Freon Biome ID", 154).getInt(); final String CATEGORY_DIMENSION = GlistreMod.config.CATEGORY_GENERAL + GlistreMod.config.CATEGORY_SPLITTER + "Dimensions"; GlistreMod.config.addCustomCategoryComment(CATEGORY_DIMENSION, "ID of the Dimension"); dimensionId = GlistreMod.config.get(Configuration.CATEGORY_GENERAL, "dimensionFreonId", .getInt(); if(GlistreMod.config.hasChanged()){ GlistreMod.config.save(); } } } Quote
Draco18s Posted April 1, 2016 Posted April 1, 2016 comment this: if(GlistreMod.config.hasChanged()){ Because fuck it, if it hasn't changed, save it anyway because who's going to notice. Quote Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
Glistre Posted April 3, 2016 Author Posted April 3, 2016 Thank you, but that did not seem to change anything when I commented it out. My config looks fine when I go into the mod and click on the gui button "config" and appears to change the setting but it never changes anything . The only time I can change is when I go into the the config file and edit ... Well, this mod is really cool, believe me. ..cannot wait to update it to 1.8 but I have got to finish it up I would really, really, appreciate any help on this Here's the rest of my code ...this is my recipe class: package com.glistre.glistremod.lib; import com.glistre.glistremod.GlistreMod; import com.glistre.glistremod.blocks.BlockRegistry; import com.glistre.glistremod.items.ItemRegistry; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.enchantment.Enchantment; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; public class Recipes { public static void initShapedRecipes(){ if(!ConfigurationGlistre.secretRecipe){ // SWORD RECIPE GameRegistry.addRecipe(new ItemStack(ItemRegistry.SilverSword_1, 1), new Object[]{" X "," X "," S ", 'S', Items.stick,'X', ItemRegistry.SilverIngot_1,}); }else{ // SWORD RECIPE GameRegistry.addRecipe(new ItemStack(ItemRegistry.SilverSword_1, 1), new Object[]{" X "," X "," S ", 'S', Items.stick,'X', BlockRegistry.MyBlock_1,}); } } public static void initShapelessRecipes(){ if(!ConfigurationGlistre.secretRecipe){ // GLISTERING BREAD standard RECIPE ItemStack glistrebread = new ItemStack(ItemRegistry.GlistreFood_1); GameRegistry.addShapelessRecipe(glistrebread, ItemRegistry.Glistre_Dust, Items.bread); // GLISTRE DUST standard RECIPE ItemStack GlistreDust = new ItemStack(ItemRegistry.Glistre_Dust); GameRegistry.addShapelessRecipe(GlistreDust, ItemRegistry.SilverIngot_1, Items.gold_ingot); }else{ // GLISTERING BREAD secret RECIPE ItemStack glistrebread = new ItemStack(ItemRegistry.GlistreFood_1); GameRegistry.addShapelessRecipe(glistrebread, Blocks.dirt, Items.bread); // Glistre Sword secret recipe ItemStack enchant = new ItemStack(ItemRegistry.Glistre_Sword); enchant.addEnchantment(Enchantment.fireAspect, 7); GameRegistry.addShapelessRecipe(enchant, Items.bone, Items.golden_apple); // Silver Pickaxe secret recipe ItemStack enchant02 = new ItemStack(ItemRegistry.SilverPickaxe_1); enchant02.addEnchantment(Enchantment.fortune, 11); GameRegistry.addShapelessRecipe(enchant02, Items.bone, Items.quartz); } } public static void initSmeltingRecipes(){ // SMELTING GLISTRE INGOT RECIPE ItemStack GlistreIngot2 = new ItemStack(ItemRegistry.Glistre_Ingot); GameRegistry.addSmelting(ItemRegistry.Glistre_Dust, GlistreIngot2, 12.0F); } } And this is in my main class: /* MOD INFO */ @Mod(modid = Reference.MOD_ID, name = Reference.MOD_NAME, version = Reference.VERSION, guiFactory = "com.glistre.glistremod.lib.GlistreGuiFactory") //, dependencies = "required-after:Mystcraft" public class GlistreMod { /* PROXY INFO */ @SidedProxy(clientSide = ("com.glistre.glistremod.proxies.ClientProxy"), serverSide = ("com.glistre.glistremod.proxies.CommonProxy")) public static CommonProxy proxy; public static Configuration config; @Mod.Instance(Reference.MOD_ID) public static GlistreMod instance; public static Logger log = FMLLog.getLogger(); GlistreEventHandler handler = new GlistreEventHandler(); @EventHandler public void preInit(FMLPreInitializationEvent event) { FMLCommonHandler.instance().bus().register(handler); MinecraftForge.EVENT_BUS.register(handler); proxy.preInit(); config = new Configuration(event.getSuggestedConfigurationFile()); ConfigurationGlistre.loadConfig(); I tried this event in both my main class and event class: @SubscribeEvent public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event){ if(event.modID.equals(Reference.MOD_ID)) //resync configs this is where restart would or not be required { ConfigurationGlistre.loadConfig(); } } Quote
Glistre Posted April 6, 2016 Author Posted April 6, 2016 anyone? I know it's really obvious to someone out there Quote
coolAlias Posted April 7, 2016 Posted April 7, 2016 I'm not familiar with how Forge's in-game config GUIs function, but it seems to me like calling #loadConfig again would overwrite any changes you may have made from the GUI with the values from the actual file. Speaking of which, GUIs are client-side only, so any config settings that you allow to be configured from there either need to only be used on the client side, OR you need to have a way of getting the new settings to the server so the config file on the server (which may or may not be on the player's computer) can actually save them. Take a look at Battlegear2, for example, specifically their GUI's #onGuiClosed method, and their Config class' #refreshConfig method. Quote http://i.imgur.com/NdrFdld.png[/img]
Glistre Posted April 9, 2016 Author Posted April 9, 2016 I'm not familiar with how Forge's in-game config GUIs function, but it seems to me like calling #loadConfig again would overwrite any changes you may have made from the GUI with the values from the actual file. Speaking of which, GUIs are client-side only, so any config settings that you allow to be configured from there either need to only be used on the client side, OR you need to have a way of getting the new settings to the server so the config file on the server (which may or may not be on the player's computer) can actually save them. Take a look at Battlegear2, for example, specifically their GUI's #onGuiClosed method, and their Config class' #refreshConfig method. so in #onConfigChangedEvent I would not load the Configuration.Glistre? That is where I have "if config hasChanged ...config.save() ... I would think it would save the change then load the saved config ... I never see an event for onConfigChangedEvent ...nothing ever shows up in the console I add a Systemout.println it does not seem that any event ever takes place Quote
Glistre Posted April 9, 2016 Author Posted April 9, 2016 looks like I have followed this tutorial to the letter: https://github.com/Minalien/BlogArchive/blob/master/ForgeTutorials/Spotlight__Config_GUIs.md ... everything appears to work but it does not .. the config is created at the default and you can change in the config setting in Minecraft via the config button then change in the gui screen but the config never changes it's always the default Is it possible that this does not work in 1.7.10 version 10.13.4.14.92? that is what I am using Quote
Glistre Posted April 9, 2016 Author Posted April 9, 2016 It appears that I have been wasting my time ...in this post the image of the config gui for Bspkr's GUI system states "This is for playing with the Conf GUI behavior. Changes are not saved." http://www.minecraftforge.net/forum/index.php?topic=21177.0 Anyone wish to confirm that there's no way to save changes ? Quote
Glistre Posted April 9, 2016 Author Posted April 9, 2016 SOLVED!!!! My Reference.MOD_NAME in the Config GUI class does not work I should have used Reference.MOD_ID !! Amazing and frustrating at the same time Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.