Everything posted by NovaViper
-
[1.8]Making configurations for Biome and Dimension IDs
Then how am I suppose to change the sorting of the properties?
-
[1.8]Making configurations for Biome and Dimension IDs
Question, now that I have the method overriden, how do I arrange it to where it calls the methods like I want them called?
-
[1.8]Making configurations for Biome and Dimension IDs
Oh? So do I not override getCategory? And does this mean I do not need the ModConfigCategory class? Also, I try to override setCategoryPropertyOrder, there's a boolean that is private. How do I get it?
-
[1.8]Making configurations for Biome and Dimension IDs
I started on this but now I'm getting an error from all of the reflection methods. They say to put a try and catch method in package common.zeroquest.core.configuration; import java.io.File; import java.lang.reflect.Field; import java.util.Map; import java.util.TreeMap; import net.minecraftforge.common.config.Configuration; public class ModConfiguration extends Configuration { public ModConfiguration() {} /** * Create a configuration file for the file given in parameter. */ public ModConfiguration(File file) { super(file); } @Override public ModConfigCategory getCategory(String category) { Class c = Class.forName(Configuration.class.toString()); Field field1 = c.getDeclaredField("categories"); Field field2 = c.getDeclaredField("changed"); Object a = field1.get(this); Object b = field2.get(this); field1.setAccessible(true); field2.setAccessible(true); ModConfigCategory ret = (ModConfigCategory) field1.get(this); if (ret == null) { if (category.contains(CATEGORY_SPLITTER)) { String[] hierarchy = category.split("\\" + CATEGORY_SPLITTER); ModConfigCategory parent = (ModConfigCategory)field1.get(hierarchy[0]); if (parent == null) { parent = new ModConfigCategory(hierarchy[0]); field1.set(parent.getQualifiedName(), parent); field2.setBoolean(b, true); } for (int i = 1; i < hierarchy.length; i++) { String name = ModConfigCategory.getQualifiedName(hierarchy[i], parent); ModConfigCategory child = (ModConfigCategory) field1.get(name); if (child == null) { child = new ModConfigCategory(hierarchy[i], parent); field1.set(name, child); field2.setBoolean(b, true); } ret = child; parent = child; } } else { ret = new ModConfigCategory(category); field1.set(category, ret); field2.setBoolean(b, true); } } return ret; } }
-
[1.8]Making configurations for Biome and Dimension IDs
I think that was the problem and question, eclipse is now saying about the field the category String in the method mismatching (cannot convert from Object to ModConfigCategory). How should I have the fields as to solve this? Here is my code package common.zeroquest.core.configuration; import java.io.File; import java.lang.reflect.Field; import java.util.Map; import java.util.TreeMap; import net.minecraftforge.common.config.Configuration; public class ModConfiguration extends Configuration { public ModConfiguration() {} /** * Create a configuration file for the file given in parameter. */ public ModConfiguration(File file) { super(file); } @Override public ModConfigCategory getCategory(String category) { Class c = Class.forName(Configuration.class.toString()); Field field1 = c.getDeclaredField("categories"); Field field2 = c.getDeclaredField("changed"); field1.setAccessible(true); field2.setAccessible(true); ModConfigCategory ret = field1.get(category); <<Error here if (ret == null) { if (category.contains(CATEGORY_SPLITTER)) { String[] hierarchy = category.split("\\" + CATEGORY_SPLITTER); ModConfigCategory parent = categories.get(hierarchy[0]); if (parent == null) { parent = new ModConfigCategory(hierarchy[0]); categories.put(parent.getQualifiedName(), parent); changed = true; } for (int i = 1; i < hierarchy.length; i++) { String name = ModConfigCategory.getQualifiedName(hierarchy[i], parent); ModConfigCategory child = categories.get(name); if (child == null) { child = new ModConfigCategory(hierarchy[i], parent); categories.put(name, child); changed = true; } ret = child; parent = child; } } else { ret = new ModConfigCategory(category); categories.put(category, ret); changed = true; } } return ret; } }
-
[1.8]Making configurations for Biome and Dimension IDs
*Facepalm* Thanks for that tip.. I didn't realize that before.
-
[1.8]Making configurations for Biome and Dimension IDs
And my code package common.zeroquest.core.configuration; import java.io.File; import java.lang.reflect.Field; import java.util.Map; import java.util.TreeMap; import net.minecraftforge.common.config.Configuration; public class ModConfiguration extends Configuration { Class c = Class.forName("net.minecraftforge.common.config.Configuration"); <<<Error : ClassNotFoundException Field fieldString = c.getDeclaredField("categories"); <<<Error: NoSuchFieldException Field fieldBoolean = c.getDeclaredField("changed"); <<<<Error:NoSuchFieldException public ModConfiguration() {} /** * Create a configuration file for the file given in parameter. */ public ModConfiguration(File file) { super(file); } @Override public ModConfigCategory getCategory(String category) { fieldString.setAccessible(true); fieldBoolean.setAccessible(true); ModConfigCategory ret = categories.get(category); if (ret == null) { if (category.contains(CATEGORY_SPLITTER)) { String[] hierarchy = category.split("\\" + CATEGORY_SPLITTER); ModConfigCategory parent = categories.get(hierarchy[0]); if (parent == null) { parent = new ModConfigCategory(hierarchy[0]); categories.put(parent.getQualifiedName(), parent); changed = true; } for (int i = 1; i < hierarchy.length; i++) { String name = ModConfigCategory.getQualifiedName(hierarchy[i], parent); ModConfigCategory child = categories.get(name); if (child == null) { child = new ModConfigCategory(hierarchy[i], parent); categories.put(name, child); changed = true; } ret = child; parent = child; } } else { ret = new ModConfigCategory(category); categories.put(category, ret); changed = true; } } return ret; } }
-
[1.8]Making configurations for Biome and Dimension IDs
Description Resource Path Location Type Unhandled exception type NoSuchFieldException ModConfiguration.java /Minecraft/src/main/java/common/zeroquest/core/configuration line 13 Java Problem Unhandled exception type ClassNotFoundException ModConfiguration.java /Minecraft/src/main/java/common/zeroquest/core/configuration line 12 Java Problem I can't grab a description about it
-
[1.8]Making configurations for Biome and Dimension IDs
I thought it was needed, whenever I put the methods in the class, I get errors from eclipse saying ClassNotFoundExpection
-
[1.8]Making configurations for Biome and Dimension IDs
I'm still confused. How am I suppose to call if I'm using a separate class with the reflection methods inside?
-
[1.8]Making configurations for Biome and Dimension IDs
I'm a little confued at step 4, do I get the Configuration class name? I'm using the Reflection class I made like this ModConfiguration package common.zeroquest.core.configuration; import java.io.File; import java.lang.reflect.Field; import java.util.Map; import java.util.TreeMap; import common.zeroquest.reflection.ReflectionConfig; import net.minecraftforge.common.config.Configuration; public class ModConfiguration extends Configuration { public ModConfiguration() {} /** * Create a configuration file for the file given in parameter. */ public ModConfiguration(File file) { super(file); } @Override public ModConfigCategory getCategory(String category) { ModConfigCategory ret = ReflectionConfig.main(Configuration.class.toString()).get(category); if (ret == null) { if (category.contains(CATEGORY_SPLITTER)) { String[] hierarchy = category.split("\\" + CATEGORY_SPLITTER); ModConfigCategory parent = categories.get(hierarchy[0]); if (parent == null) { parent = new ModConfigCategory(hierarchy[0]); categories.put(parent.getQualifiedName(), parent); changed = true; } for (int i = 1; i < hierarchy.length; i++) { String name = ModConfigCategory.getQualifiedName(hierarchy[i], parent); ModConfigCategory child = categories.get(name); if (child == null) { child = new ModConfigCategory(hierarchy[i], parent); categories.put(name, child); changed = true; } ret = child; parent = child; } } else { ret = new ModConfigCategory(category); categories.put(category, ret); changed = true; } } return ret; } } Reflection package common.zeroquest.reflection; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflectionConfig { public static void main(String[] args) { try{ Class c = Class.forName("net.minecraftforge.common.config.Configuration"); //Method methodList[] = c.getDeclaredMethods(); Field field = c.getDeclaredField("categories"); field.setAccessible(true); field.get(args); System.out.println(field); }catch (Exception e){ System.out.println("ERROR:" + e.getMessage()); } } }
-
[1.8]Making configurations for Biome and Dimension IDs
And this also package common.zeroquest.reflection; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflectionAll { public static void main(String[] args) { try{ Class c = Class.forName("net.minecraftforge.common.config.Configuration"); //Method methodList[] = c.getDeclaredMethods(); Field[] fields = c.getDeclaredFields(); System.out.println(fields); << Error here }catch (Exception e){ System.out.println("ERROR:" + e.getMessage()); } } }
-
[1.8]Making configurations for Biome and Dimension IDs
Class c = Class.forName("net.minecraftforge.common.config.Configuration"); Field privateStringField = PrivateObject.class.getDeclaredField("privateString"); public ModConfiguration() {} /** * Create a configuration file for the file given in parameter. */ public ModConfiguration(File file) { super(file); } @Override public ModConfigCategory getCategory(String category) { ModConfigCategory ret = c.getMethods()..get(category);
-
[1.8]Making configurations for Biome and Dimension IDs
I'm not sure how to use a reflection, but I'm getting an error from eclipse from attempting to use it null org.eclipse.recommenders.calls.rcp Error Sun Jun 07 10:53:25 CDT 2015 Proposal matching failed for [METHOD_REF]{completion:clone(), declSign:[Ljava.lang.annotation.Annotation;, sign:()[Ljava.lang.annotation.Annotation;, declKey:, key:, name:clone, replace:[492,492], token:[492,492], relevance:35}. org.eclipse.recommenders.utils.Logs$LogTraceException at org.eclipse.recommenders.utils.Logs$LogTraceException.newTrace(Logs.java:377) at org.eclipse.recommenders.utils.Logs.log(Logs.java:130) at org.eclipse.recommenders.internal.calls.rcp.CallCompletionSessionProcessor.process(CallCompletionSessionProcessor.java:203) at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.fireProcessProposal(IntelligentCompletionProposalComputer.java:243) at org.eclipse.recommenders.completion.rcp.processable.IntelligentCompletionProposalComputer.computeCompletionProposals(IntelligentCompletionProposalComputer.java:143) at org.eclipse.jdt.internal.ui.text.java.CompletionProposalComputerDescriptor.computeCompletionProposals(CompletionProposalComputerDescriptor.java:333) at org.eclipse.jdt.internal.ui.text.java.CompletionProposalCategory.computeCompletionProposals(CompletionProposalCategory.java:337) at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.collectProposals(ContentAssistProcessor.java:325) at org.eclipse.jdt.internal.ui.text.java.ContentAssistProcessor.computeCompletionProposals(ContentAssistProcessor.java:282) at org.eclipse.jface.text.contentassist.ContentAssistant$5.run(ContentAssistant.java:1904) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.jface.text.contentassist.ContentAssistant.computeCompletionProposals(ContentAssistant.java:1902) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.computeProposals(CompletionProposalPopup.java:573) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$16(CompletionProposalPopup.java:570) at org.eclipse.jface.text.contentassist.CompletionProposalPopup$2.run(CompletionProposalPopup.java:505) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.text.contentassist.CompletionProposalPopup.showProposals(CompletionProposalPopup.java:499) at org.eclipse.jface.text.contentassist.ContentAssistant$2.run(ContentAssistant.java:384) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:135) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
-
[1.8]Making configurations for Biome and Dimension IDs
Oops, forgot to post my code ModConfiguration package common.zeroquest.core.configuration; import java.io.File; import java.util.Map; import java.util.TreeMap; import net.minecraftforge.common.config.Configuration; public class ModConfiguration extends Configuration { private Map<String, ModConfigCategory> categories = new TreeMap<String, ModConfigCategory>(); private boolean changed = false; public ModConfiguration() {} /** * Create a configuration file for the file given in parameter. */ public ModConfiguration(File file) { super(file); } @Override public ModConfigCategory getCategory(String category) { ModConfigCategory ret = categories.get(category); if (ret == null) { if (category.contains(CATEGORY_SPLITTER)) { String[] hierarchy = category.split("\\" + CATEGORY_SPLITTER); ModConfigCategory parent = categories.get(hierarchy[0]); if (parent == null) { parent = new ModConfigCategory(hierarchy[0]); categories.put(parent.getQualifiedName(), parent); changed = true; } for (int i = 1; i < hierarchy.length; i++) { String name = ModConfigCategory.getQualifiedName(hierarchy[i], parent); ModConfigCategory child = categories.get(name); if (child == null) { child = new ModConfigCategory(hierarchy[i], parent); categories.put(name, child); changed = true; } ret = child; parent = child; } } else { ret = new ModConfigCategory(category); categories.put(category, ret); changed = true; } } return ret; } } ModConfigCategory package common.zeroquest.core.configuration; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; import com.google.common.collect.ImmutableList; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Property; public class ModConfigCategory extends ConfigCategory { public ModConfigCategory(String name) { super(name); } public ModConfigCategory(String name, ModConfigCategory parent) { super(name, parent); } @Override public List<Property> getOrderedValues() { return ImmutableList.copyOf(getValues().values()); } } ConfigHandler package common.zeroquest.core.handlers; import java.io.File; import java.util.ArrayList; import java.util.List; import net.minecraftforge.common.config.Property; import org.apache.logging.log4j.Logger; import common.zeroquest.ZeroQuest; import common.zeroquest.core.configuration.ModConfiguration; import common.zeroquest.lib.Constants; import common.zeroquest.lib.IDs; public class ConfigHandler { // Add more Categories for GuiFactory\\ public static ModConfiguration config; public static final String CATEGORY_LOAD = "load"; public static final String CATEGORY_FUNCTION = "function"; public static final String CATEGORY_MISC = "miscellaneous"; public static final String CATEGORY_DIMENSION = "dimensions"; public static final String CATEGORY_BIOME = "biomes"; public static void init(File file) { config = new ModConfiguration(file); loadConfig(); } public static void loadConfig() { config.addCustomCategoryComment(CATEGORY_FUNCTION, "Here you can manage all mod and entity functions"); config.addCustomCategoryComment(CATEGORY_LOAD, "Here you can manage what the mod loads into the game"); config.addCustomCategoryComment(CATEGORY_MISC, "Here you can manage the miscellaneous functions of the mod"); config.addCustomCategoryComment(CATEGORY_DIMENSION, "Here you can manage the mod's dimension factors"); config.addCustomCategoryComment(CATEGORY_BIOME, "Here you can manage the mod's biome factors"); //@formatter:off /*=================================Load Configurations==========================================*/ //@formatter:on Constants.DEF_DARKLOAD = config.get(CATEGORY_LOAD, "DarkElements", Constants.DEF_DARKLOAD).setLanguageKey(Constants.guiKey + "DarkElements").setRequiresMcRestart(true).getBoolean(Constants.DEF_DARKLOAD); Constants.DEF_STARTING_ITEMS = config.get(CATEGORY_LOAD, "StartingItems", Constants.DEF_STARTING_ITEMS).setLanguageKey(Constants.guiKey + "StartingItems").getBoolean(Constants.DEF_STARTING_ITEMS); Constants.DEF_MODCHECKER = config.get(CATEGORY_LOAD, "ModCheck", Constants.DEF_MODCHECKER).setLanguageKey(Constants.guiKey + "ModCheck").getBoolean(Constants.DEF_MODCHECKER); //@formatter:off /*=================================Function Configurations==========================================*/ //@formatter:on Constants.DEF_HEALING = config.get(CATEGORY_FUNCTION, "Healing", Constants.DEF_HEALING).setLanguageKey(Constants.guiKey + "Healing").getBoolean(Constants.DEF_HEALING); Constants.DEF_SNOWSTEP = config.get(CATEGORY_FUNCTION, "SnowStep", Constants.DEF_SNOWSTEP).setLanguageKey(Constants.guiKey + "SnowStep").getBoolean(Constants.DEF_SNOWSTEP); Constants.DEF_GRASSSTEP = config.get(CATEGORY_FUNCTION, "GrassStep", Constants.DEF_GRASSSTEP).setLanguageKey(Constants.guiKey + "GrassStep").getBoolean(Constants.DEF_GRASSSTEP); //@formatter:off /*=================================Miscellaneous Configurations==========================================*/ //@formatter:on Constants.DEF_HOWL = config.get(CATEGORY_MISC, "Howl", Constants.DEF_HOWL).setLanguageKey(Constants.guiKey + "Howl").getBoolean(Constants.DEF_HOWL); Constants.DEF_IS_HUNGER_ON = config.get(CATEGORY_MISC, "HungerDecay", Constants.DEF_IS_HUNGER_ON).setLanguageKey(Constants.guiKey + "HungerDecay").getBoolean(Constants.DEF_IS_HUNGER_ON); //@formatter:off /*=================================DimensionsConfigurations==========================================*/ //@formatter:on IDs.Nillax = config.get(CATEGORY_DIMENSION, "NillaxID", IDs.Nillax).setLanguageKey(Constants.guiKey + "NillaxID").setRequiresMcRestart(true).getInt(IDs.Nillax); if (Constants.DEF_DARKLOAD == true) { IDs.Darkax = config.get(CATEGORY_DIMENSION, "DarkaxID", IDs.Darkax).setLanguageKey(Constants.guiKey + "DarkaxID").setRequiresMcRestart(true).getInt(IDs.Darkax); } //@formatter:off /*=================================BiomesConfigurations==========================================*/ //@formatter:on IDs.bioZone = config.get(CATEGORY_BIOME, "BioZoneID", IDs.bioZone).setLanguageKey(Constants.guiKey + "BioZoneID").setRequiresMcRestart(true).getInt(IDs.bioZone); IDs.redSeed = config.get(CATEGORY_BIOME, "RedSeedID", IDs.redSeed).setLanguageKey(Constants.guiKey + "RedSeedID").setRequiresMcRestart(true).getInt(IDs.redSeed); IDs.blueTaiga = config.get(CATEGORY_BIOME, "BlueTaigaID", IDs.blueTaiga).setLanguageKey(Constants.guiKey + "BlueTaigaID").setRequiresMcRestart(true).getInt(IDs.blueTaiga); IDs.blueTaigaHills = config.get(CATEGORY_BIOME, "BlueTaigaHillsID", IDs.blueTaigaHills).setLanguageKey(Constants.guiKey + "BlueTaigaHillsID").setRequiresMcRestart(true).getInt(IDs.blueTaigaHills); IDs.blueColdTaiga = config.get(CATEGORY_BIOME, "BlueColdTaigaID", IDs.blueColdTaiga).setLanguageKey(Constants.guiKey + "BlueColdTaigaID").setRequiresMcRestart(true).getInt(IDs.blueColdTaiga); IDs.blueColdTaigaHills = config.get(CATEGORY_BIOME, "BlueColdTaigaHillsID", IDs.blueColdTaigaHills).setLanguageKey(Constants.guiKey + "BlueColdTaigaHillsID").setRequiresMcRestart(true).getInt(IDs.blueColdTaigaHills); IDs.blueMegaTaiga = config.get(CATEGORY_BIOME, "BlueMegaTaigaID", IDs.blueMegaTaiga).setLanguageKey(Constants.guiKey + "BlueMegaTaigaID").setRequiresMcRestart(true).getInt(IDs.blueMegaTaiga); IDs.blueMegaTaigaHills = config.get(CATEGORY_BIOME, "BlueMegaTaigaHillsID", IDs.blueMegaTaigaHills).setLanguageKey(Constants.guiKey + "BlueMegaTaigaHillsID").setRequiresMcRestart(true).getInt(IDs.blueMegaTaigaHills); IDs.pinkZone = config.get(CATEGORY_BIOME, "PinkZoneID", IDs.pinkZone).setLanguageKey(Constants.guiKey + "PinkZoneID").setRequiresMcRestart(true).getInt(IDs.pinkZone); IDs.destroZone = config.get(CATEGORY_BIOME, "DestroZoneID", IDs.destroZone).setLanguageKey(Constants.guiKey + "DestroZoneID").setRequiresMcRestart(true).getInt(IDs.destroZone); IDs.destroZoneHills = config.get(CATEGORY_BIOME, "DestroZoneHillsID", IDs.destroZoneHills).setLanguageKey(Constants.guiKey + "DestroZoneHillsID").setRequiresMcRestart(true).getInt(IDs.destroZoneHills); IDs.walRockland = config.get(CATEGORY_BIOME, "WalRocklandID", IDs.walRockland).setLanguageKey(Constants.guiKey + "WalRocklandID").setRequiresMcRestart(true).getInt(IDs.walRockland); if (Constants.DEF_DARKLOAD == true) { IDs.darkWasteland = config.get(CATEGORY_BIOME, "DarkaxBiomeID", IDs.darkWasteland).setLanguageKey(Constants.guiKey + "DarkaxBiomeID").setRequiresMcRestart(true).getInt(IDs.darkWasteland); } IDs.nileSavanna = config.get(CATEGORY_BIOME, "NileSavannaID", IDs.nileSavanna).setLanguageKey(Constants.guiKey + "NileSavannaID").setRequiresMcRestart(true).getInt(IDs.nileSavanna); IDs.nileSavannaPlateau = config.get(CATEGORY_BIOME, "NileSavannaPlateauID", IDs.nileSavannaPlateau).setLanguageKey(Constants.guiKey + "NileSavannaPlateauID").setRequiresMcRestart(true).getInt(IDs.nileSavannaPlateau); IDs.nileJungle = config.get(CATEGORY_BIOME, "NileJungleID", IDs.nileJungle).setLanguageKey(Constants.guiKey + "NileJungleID").setRequiresMcRestart(true).getInt(IDs.nileJungle); IDs.nileJungleHills = config.get(CATEGORY_BIOME, "NileJungleHillsID", IDs.nileJungleHills).setLanguageKey(Constants.guiKey + "NileJungleHillsID").setRequiresMcRestart(true).getInt(IDs.nileJungleHills); IDs.nileJungleEdge = config.get(CATEGORY_BIOME, "NileJungleEdgeID", IDs.nileJungleEdge).setLanguageKey(Constants.guiKey + "NileJungleEdgeID").setRequiresMcRestart(true).getInt(IDs.nileJungleEdge); IDs.nileSwampland = config.get(CATEGORY_BIOME, "NileSwamplandID", IDs.nileSwampland).setLanguageKey(Constants.guiKey + "NileSwamplandID").setRequiresMcRestart(true).getInt(IDs.nileSwampland); IDs.nileMesa = config.get(CATEGORY_BIOME, "NileMesaID", IDs.nileMesa).setLanguageKey(Constants.guiKey + "NileMesaID").setRequiresMcRestart(true).getInt(IDs.nileMesa); IDs.nileMesaPlateau_F = config.get(CATEGORY_BIOME, "NileMesaPlateauFID", IDs.nileMesaPlateau_F).setLanguageKey(Constants.guiKey + "NileMesaPlateauFID").setRequiresMcRestart(true).getInt(IDs.nileMesaPlateau_F); IDs.nileMesaPlateau = config.get(CATEGORY_BIOME, "NileMesaPlateauID", IDs.nileMesaPlateau).setLanguageKey(Constants.guiKey + "NileMesaPlateauID").setRequiresMcRestart(true).getInt(IDs.nileMesaPlateau); IDs.nileMountains = config.get(CATEGORY_BIOME, "NileMountainsID", IDs.nileMountains).setLanguageKey(Constants.guiKey + "NileMountainsID").setRequiresMcRestart(true).getInt(IDs.nileMountains); IDs.nileMountainsEdge = config.get(CATEGORY_BIOME, "NileMountainsEdgeID", IDs.nileMountainsEdge).setLanguageKey(Constants.guiKey + "NileMountainsEdgeID").setRequiresMcRestart(true).getInt(IDs.nileMountainsEdge); IDs.nileMountainsPlus = config.get(CATEGORY_BIOME, "NileMountainsPlusID", IDs.nileMountainsPlus).setLanguageKey(Constants.guiKey + "NileMountainsPlusID").setRequiresMcRestart(true).getInt(IDs.nileMountainsPlus); if (config.hasChanged()) { config.save(); } } }
-
[1.8]Making configurations for Biome and Dimension IDs
Now it's not blank but It's still sorting
-
[1.8]Making configurations for Biome and Dimension IDs
Welp, thanks for trying to help guys. I'll just delete with having the configuration being in a weird order
-
[1.8]Making configurations for Biome and Dimension IDs
I looked at the code but I don't know why it's not loading the configuration
-
[1.8]Making configurations for Biome and Dimension IDs
I'm really unsure then.
-
[1.8]Making configurations for Biome and Dimension IDs
I think
-
[1.8]Making configurations for Biome and Dimension IDs
Oooh, some methods in Configuration are still using the default getCategory
-
[1.8]Making configurations for Biome and Dimension IDs
Now it's all blank. Here is my code. ModConfiguration package common.zeroquest.core.configuration; import java.io.File; import java.util.Map; import java.util.TreeMap; import net.minecraftforge.common.config.Configuration; public class ModConfiguration extends Configuration { private Map<String, ModConfigCategory> categories = new TreeMap<String, ModConfigCategory>(); private boolean changed = false; public ModConfiguration() {} /** * Create a configuration file for the file given in parameter. */ public ModConfiguration(File file) { super(file); } @Override public ModConfigCategory getCategory(String category) { ModConfigCategory ret = categories.get(category); if (ret == null) { if (category.contains(CATEGORY_SPLITTER)) { String[] hierarchy = category.split("\\" + CATEGORY_SPLITTER); ModConfigCategory parent = categories.get(hierarchy[0]); if (parent == null) { parent = new ModConfigCategory(hierarchy[0]); categories.put(parent.getQualifiedName(), parent); changed = true; } for (int i = 1; i < hierarchy.length; i++) { String name = ModConfigCategory.getQualifiedName(hierarchy[i], parent); ModConfigCategory child = categories.get(name); if (child == null) { child = new ModConfigCategory(hierarchy[i], parent); categories.put(name, child); changed = true; } ret = child; parent = child; } } else { ret = new ModConfigCategory(category); categories.put(category, ret); changed = true; } } return ret; } } ModConfigCategory package common.zeroquest.core.configuration; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; import com.google.common.collect.ImmutableList; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Property; public class ModConfigCategory extends ConfigCategory { private Map<String, Property> properties = new TreeMap<String, Property>(); public ModConfigCategory(String name) { super(name); } public ModConfigCategory(String name, ModConfigCategory parent) { super(name, parent); } @Override public List<Property> getOrderedValues() { return ImmutableList.copyOf(properties.values()); } } ConfigHandler package common.zeroquest.core.handlers; import java.io.File; import java.util.ArrayList; import java.util.List; import net.minecraftforge.common.config.Property; import org.apache.logging.log4j.Logger; import common.zeroquest.ZeroQuest; import common.zeroquest.core.configuration.ModConfiguration; import common.zeroquest.lib.Constants; import common.zeroquest.lib.IDs; public class ConfigHandler { // Add more Categories for GuiFactory\\ public static ModConfiguration config; public static final String CATEGORY_LOAD = "load"; public static final String CATEGORY_FUNCTION = "function"; public static final String CATEGORY_MISC = "miscellaneous"; public static final String CATEGORY_DIMENSION = "dimensions"; public static final String CATEGORY_BIOME = "biomes"; public static void init(File file) { config = new ModConfiguration(file); loadConfig(); } public static void loadConfig() { config.addCustomCategoryComment(CATEGORY_FUNCTION, "Here you can manage all mod and entity functions"); config.addCustomCategoryComment(CATEGORY_LOAD, "Here you can manage what the mod loads into the game"); config.addCustomCategoryComment(CATEGORY_MISC, "Here you can manage the miscellaneous functions of the mod"); config.addCustomCategoryComment(CATEGORY_DIMENSION, "Here you can manage the mod's dimension factors"); config.addCustomCategoryComment(CATEGORY_BIOME, "Here you can manage the mod's biome factors"); //@formatter:off /*=================================Load Configurations==========================================*/ //@formatter:on Constants.DEF_DARKLOAD = config.get(CATEGORY_LOAD, "DarkElements", Constants.DEF_DARKLOAD).setLanguageKey(Constants.guiKey + "DarkElements").setRequiresMcRestart(true).getBoolean(Constants.DEF_DARKLOAD); Constants.DEF_STARTING_ITEMS = config.get(CATEGORY_LOAD, "StartingItems", Constants.DEF_STARTING_ITEMS).setLanguageKey(Constants.guiKey + "StartingItems").getBoolean(Constants.DEF_STARTING_ITEMS); Constants.DEF_MODCHECKER = config.get(CATEGORY_LOAD, "ModCheck", Constants.DEF_MODCHECKER).setLanguageKey(Constants.guiKey + "ModCheck").getBoolean(Constants.DEF_MODCHECKER); //@formatter:off /*=================================Function Configurations==========================================*/ //@formatter:on Constants.DEF_HEALING = config.get(CATEGORY_FUNCTION, "Healing", Constants.DEF_HEALING).setLanguageKey(Constants.guiKey + "Healing").getBoolean(Constants.DEF_HEALING); Constants.DEF_SNOWSTEP = config.get(CATEGORY_FUNCTION, "SnowStep", Constants.DEF_SNOWSTEP).setLanguageKey(Constants.guiKey + "SnowStep").getBoolean(Constants.DEF_SNOWSTEP); Constants.DEF_GRASSSTEP = config.get(CATEGORY_FUNCTION, "GrassStep", Constants.DEF_GRASSSTEP).setLanguageKey(Constants.guiKey + "GrassStep").getBoolean(Constants.DEF_GRASSSTEP); //@formatter:off /*=================================Miscellaneous Configurations==========================================*/ //@formatter:on Constants.DEF_HOWL = config.get(CATEGORY_MISC, "Howl", Constants.DEF_HOWL).setLanguageKey(Constants.guiKey + "Howl").getBoolean(Constants.DEF_HOWL); Constants.DEF_IS_HUNGER_ON = config.get(CATEGORY_MISC, "HungerDecay", Constants.DEF_IS_HUNGER_ON).setLanguageKey(Constants.guiKey + "HungerDecay").getBoolean(Constants.DEF_IS_HUNGER_ON); //@formatter:off /*=================================DimensionsConfigurations==========================================*/ //@formatter:on IDs.Nillax = config.get(CATEGORY_DIMENSION, "NillaxID", IDs.Nillax).setLanguageKey(Constants.guiKey + "NillaxID").setRequiresMcRestart(true).getInt(IDs.Nillax); if (Constants.DEF_DARKLOAD == true) { IDs.Darkax = config.get(CATEGORY_DIMENSION, "DarkaxID", IDs.Darkax).setLanguageKey(Constants.guiKey + "DarkaxID").setRequiresMcRestart(true).getInt(IDs.Darkax); } //@formatter:off /*=================================BiomesConfigurations==========================================*/ //@formatter:on IDs.bioZone = config.get(CATEGORY_BIOME, "BioZoneID", IDs.bioZone).setLanguageKey(Constants.guiKey + "BioZoneID").setRequiresMcRestart(true).getInt(IDs.bioZone); IDs.redSeed = config.get(CATEGORY_BIOME, "RedSeedID", IDs.redSeed).setLanguageKey(Constants.guiKey + "RedSeedID").setRequiresMcRestart(true).getInt(IDs.redSeed); IDs.blueTaiga = config.get(CATEGORY_BIOME, "BlueTaigaID", IDs.blueTaiga).setLanguageKey(Constants.guiKey + "BlueTaigaID").setRequiresMcRestart(true).getInt(IDs.blueTaiga); IDs.blueTaigaHills = config.get(CATEGORY_BIOME, "BlueTaigaHillsID", IDs.blueTaigaHills).setLanguageKey(Constants.guiKey + "BlueTaigaHillsID").setRequiresMcRestart(true).getInt(IDs.blueTaigaHills); IDs.blueColdTaiga = config.get(CATEGORY_BIOME, "BlueColdTaigaID", IDs.blueColdTaiga).setLanguageKey(Constants.guiKey + "BlueColdTaigaID").setRequiresMcRestart(true).getInt(IDs.blueColdTaiga); IDs.blueColdTaigaHills = config.get(CATEGORY_BIOME, "BlueColdTaigaHillsID", IDs.blueColdTaigaHills).setLanguageKey(Constants.guiKey + "BlueColdTaigaHillsID").setRequiresMcRestart(true).getInt(IDs.blueColdTaigaHills); IDs.blueMegaTaiga = config.get(CATEGORY_BIOME, "BlueMegaTaigaID", IDs.blueMegaTaiga).setLanguageKey(Constants.guiKey + "BlueMegaTaigaID").setRequiresMcRestart(true).getInt(IDs.blueMegaTaiga); IDs.blueMegaTaigaHills = config.get(CATEGORY_BIOME, "BlueMegaTaigaHillsID", IDs.blueMegaTaigaHills).setLanguageKey(Constants.guiKey + "BlueMegaTaigaHillsID").setRequiresMcRestart(true).getInt(IDs.blueMegaTaigaHills); IDs.pinkZone = config.get(CATEGORY_BIOME, "PinkZoneID", IDs.pinkZone).setLanguageKey(Constants.guiKey + "PinkZoneID").setRequiresMcRestart(true).getInt(IDs.pinkZone); IDs.destroZone = config.get(CATEGORY_BIOME, "DestroZoneID", IDs.destroZone).setLanguageKey(Constants.guiKey + "DestroZoneID").setRequiresMcRestart(true).getInt(IDs.destroZone); IDs.destroZoneHills = config.get(CATEGORY_BIOME, "DestroZoneHillsID", IDs.destroZoneHills).setLanguageKey(Constants.guiKey + "DestroZoneHillsID").setRequiresMcRestart(true).getInt(IDs.destroZoneHills); IDs.walRockland = config.get(CATEGORY_BIOME, "WalRocklandID", IDs.walRockland).setLanguageKey(Constants.guiKey + "WalRocklandID").setRequiresMcRestart(true).getInt(IDs.walRockland); if (Constants.DEF_DARKLOAD == true) { IDs.darkWasteland = config.get(CATEGORY_BIOME, "DarkaxBiomeID", IDs.darkWasteland).setLanguageKey(Constants.guiKey + "DarkaxBiomeID").setRequiresMcRestart(true).getInt(IDs.darkWasteland); } IDs.nileSavanna = config.get(CATEGORY_BIOME, "NileSavannaID", IDs.nileSavanna).setLanguageKey(Constants.guiKey + "NileSavannaID").setRequiresMcRestart(true).getInt(IDs.nileSavanna); IDs.nileSavannaPlateau = config.get(CATEGORY_BIOME, "NileSavannaPlateauID", IDs.nileSavannaPlateau).setLanguageKey(Constants.guiKey + "NileSavannaPlateauID").setRequiresMcRestart(true).getInt(IDs.nileSavannaPlateau); IDs.nileJungle = config.get(CATEGORY_BIOME, "NileJungleID", IDs.nileJungle).setLanguageKey(Constants.guiKey + "NileJungleID").setRequiresMcRestart(true).getInt(IDs.nileJungle); IDs.nileJungleHills = config.get(CATEGORY_BIOME, "NileJungleHillsID", IDs.nileJungleHills).setLanguageKey(Constants.guiKey + "NileJungleHillsID").setRequiresMcRestart(true).getInt(IDs.nileJungleHills); IDs.nileJungleEdge = config.get(CATEGORY_BIOME, "NileJungleEdgeID", IDs.nileJungleEdge).setLanguageKey(Constants.guiKey + "NileJungleEdgeID").setRequiresMcRestart(true).getInt(IDs.nileJungleEdge); IDs.nileSwampland = config.get(CATEGORY_BIOME, "NileSwamplandID", IDs.nileSwampland).setLanguageKey(Constants.guiKey + "NileSwamplandID").setRequiresMcRestart(true).getInt(IDs.nileSwampland); IDs.nileMesa = config.get(CATEGORY_BIOME, "NileMesaID", IDs.nileMesa).setLanguageKey(Constants.guiKey + "NileMesaID").setRequiresMcRestart(true).getInt(IDs.nileMesa); IDs.nileMesaPlateau_F = config.get(CATEGORY_BIOME, "NileMesaPlateauFID", IDs.nileMesaPlateau_F).setLanguageKey(Constants.guiKey + "NileMesaPlateauFID").setRequiresMcRestart(true).getInt(IDs.nileMesaPlateau_F); IDs.nileMesaPlateau = config.get(CATEGORY_BIOME, "NileMesaPlateauID", IDs.nileMesaPlateau).setLanguageKey(Constants.guiKey + "NileMesaPlateauID").setRequiresMcRestart(true).getInt(IDs.nileMesaPlateau); IDs.nileMountains = config.get(CATEGORY_BIOME, "NileMountainsID", IDs.nileMountains).setLanguageKey(Constants.guiKey + "NileMountainsID").setRequiresMcRestart(true).getInt(IDs.nileMountains); IDs.nileMountainsEdge = config.get(CATEGORY_BIOME, "NileMountainsEdgeID", IDs.nileMountainsEdge).setLanguageKey(Constants.guiKey + "NileMountainsEdgeID").setRequiresMcRestart(true).getInt(IDs.nileMountainsEdge); IDs.nileMountainsPlus = config.get(CATEGORY_BIOME, "NileMountainsPlusID", IDs.nileMountainsPlus).setLanguageKey(Constants.guiKey + "NileMountainsPlusID").setRequiresMcRestart(true).getInt(IDs.nileMountainsPlus); if (config.hasChanged()) { config.save(); } } }
-
[1.8]Making configurations for Biome and Dimension IDs
That didn't work either
-
[1.8]Making configurations for Biome and Dimension IDs
Hey, I tried putting numbers on the names but it organizer that organizes the configurations are ignoring them
-
[SOLVED] My Eclipse is acting up
I fixed it, I had to add more environmental variables to PATH, the ones that lead to git.exe. And thanks guys for the help!
IPS spam blocked by CleanTalk.