Commit b8f2dadef16c52ecc996105e426653efb128ffaa

Authored by Mumfrey
1 parent 86bd548c

LiteLoader 1.6.4_02 - fixed missing config dir causing crash with new startup or…

…der, minor config changes
java/com/mumfrey/liteloader/core/LiteLoader.java
@@ -51,6 +51,10 @@ import com.mumfrey.liteloader.util.PrivateFields; @@ -51,6 +51,10 @@ import com.mumfrey.liteloader.util.PrivateFields;
51 */ 51 */
52 public final class LiteLoader 52 public final class LiteLoader
53 { 53 {
  54 + private static final String OPTION_MOD_INFO_SCREEN = "modInfoScreen";
  55 + private static final String OPTION_SOUND_MANAGER_FIX = "soundManagerFix";
  56 + private static final String OPTION_CONTROLS_PAGES = "controls.pages";
  57 +
54 /** 58 /**
55 * LiteLoader is a singleton, this is the singleton instance 59 * LiteLoader is a singleton, this is the singleton instance
56 */ 60 */
@@ -314,9 +318,9 @@ public final class LiteLoader @@ -314,9 +318,9 @@ public final class LiteLoader
314 catch (Exception ex) {} 318 catch (Exception ex) {}
315 } 319 }
316 320
317 - this.paginateControls = this.bootstrap.getAndStoreBooleanProperty("controls.pages", true);  
318 - this.inhibitSoundManagerReload = this.bootstrap.getAndStoreBooleanProperty("soundManagerFix", true);  
319 - this.displayModInfoScreenTab = this.bootstrap.getAndStoreBooleanProperty("modInfoScreen", true); 321 + this.paginateControls = this.bootstrap.getAndStoreBooleanProperty(OPTION_CONTROLS_PAGES, true);
  322 + this.inhibitSoundManagerReload = this.bootstrap.getAndStoreBooleanProperty(OPTION_SOUND_MANAGER_FIX, true);
  323 + this.displayModInfoScreenTab = this.bootstrap.getAndStoreBooleanProperty(OPTION_MOD_INFO_SCREEN, true);
320 324
321 this.enumerator.discoverModClasses(); 325 this.enumerator.discoverModClasses();
322 } 326 }
@@ -1034,7 +1038,7 @@ public final class LiteLoader @@ -1034,7 +1038,7 @@ public final class LiteLoader
1034 public void setDisplayModInfoScreenTab(boolean show) 1038 public void setDisplayModInfoScreenTab(boolean show)
1035 { 1039 {
1036 this.displayModInfoScreenTab = show; 1040 this.displayModInfoScreenTab = show;
1037 - this.bootstrap.setBooleanProperty("modInfoScreen", show); 1041 + this.bootstrap.setBooleanProperty(OPTION_MOD_INFO_SCREEN, show);
1038 this.bootstrap.writeProperties(); 1042 this.bootstrap.writeProperties();
1039 } 1043 }
1040 1044
java/com/mumfrey/liteloader/core/LiteLoaderBootstrap.java
@@ -123,6 +123,9 @@ class LiteLoaderBootstrap implements ILoaderBootstrap @@ -123,6 +123,9 @@ class LiteLoaderBootstrap implements ILoaderBootstrap
123 this.configBaseFolder = new File(this.gameDirectory, "liteconfig"); 123 this.configBaseFolder = new File(this.gameDirectory, "liteconfig");
124 this.logFile = new File(this.configBaseFolder, "liteloader.log"); 124 this.logFile = new File(this.configBaseFolder, "liteloader.log");
125 this.propertiesFile = new File(this.configBaseFolder, "liteloader.properties"); 125 this.propertiesFile = new File(this.configBaseFolder, "liteloader.properties");
  126 +
  127 + if (!this.modsFolder.exists()) this.modsFolder.mkdirs();
  128 + if (!this.configBaseFolder.exists()) this.configBaseFolder.mkdirs();
126 } 129 }
127 130
128 /* (non-Javadoc) 131 /* (non-Javadoc)
@@ -156,6 +159,9 @@ class LiteLoaderBootstrap implements ILoaderBootstrap @@ -156,6 +159,9 @@ class LiteLoaderBootstrap implements ILoaderBootstrap
156 @Override 159 @Override
157 public void init(List<String> modsToLoad, LaunchClassLoader classLoader) 160 public void init(List<String> modsToLoad, LaunchClassLoader classLoader)
158 { 161 {
  162 + // PreInit failed
  163 + if (this.enumerator == null) return;
  164 +
159 try 165 try
160 { 166 {
161 if (LiteLoaderBootstrap.logger.getHandlers().length < 1) 167 if (LiteLoaderBootstrap.logger.getHandlers().length < 1)
@@ -173,6 +179,9 @@ class LiteLoaderBootstrap implements ILoaderBootstrap @@ -173,6 +179,9 @@ class LiteLoaderBootstrap implements ILoaderBootstrap
173 @Override 179 @Override
174 public void postInit() 180 public void postInit()
175 { 181 {
  182 + // PreInit failed
  183 + if (this.enumerator == null) return;
  184 +
176 try 185 try
177 { 186 {
178 if (LiteLoaderBootstrap.logger.getHandlers().length < 1) 187 if (LiteLoaderBootstrap.logger.getHandlers().length < 1)
java/com/mumfrey/liteloader/core/LiteLoaderEnumerator.java
@@ -43,6 +43,12 @@ import com.mumfrey.liteloader.launch.LiteLoaderTweaker; @@ -43,6 +43,12 @@ import com.mumfrey.liteloader.launch.LiteLoaderTweaker;
43 */ 43 */
44 class LiteLoaderEnumerator implements FilenameFilter 44 class LiteLoaderEnumerator implements FilenameFilter
45 { 45 {
  46 + private static final String OPTION_SEARCH_ZIPFILES = "search.zipfiles";
  47 + private static final String OPTION_SEARCH_JARFILES = "search.jarfiles";
  48 + private static final String OPTION_SEARCH_MODS = "search.mods";
  49 + private static final String OPTION_SEARCH_JAR = "search.jar";
  50 + private static final String OPTION_SEARCH_CLASSPATH = "search.classpath";
  51 +
46 /** 52 /**
47 * Maximum recursion depth for mod discovery 53 * Maximum recursion depth for mod discovery
48 */ 54 */
@@ -111,6 +117,9 @@ class LiteLoaderEnumerator implements FilenameFilter @@ -111,6 +117,9 @@ class LiteLoaderEnumerator implements FilenameFilter
111 117
112 // Read the discovery settings from the properties 118 // Read the discovery settings from the properties
113 this.readSettings(); 119 this.readSettings();
  120 +
  121 + // Write settings back to the properties file, in case they changed
  122 + this.writeSettings();
114 } 123 }
115 124
116 /** 125 /**
@@ -176,13 +185,13 @@ class LiteLoaderEnumerator implements FilenameFilter @@ -176,13 +185,13 @@ class LiteLoaderEnumerator implements FilenameFilter
176 /** 185 /**
177 * Get the discovery settings from the properties file 186 * Get the discovery settings from the properties file
178 */ 187 */
179 - public void readSettings() 188 + private void readSettings()
180 { 189 {
181 - this.readZipFiles = this.bootstrap.getAndStoreBooleanProperty("search.zips", false);  
182 - this.readZipFiles = this.bootstrap.getAndStoreBooleanProperty("search.jars", true);  
183 - this.searchModsFolder = this.bootstrap.getAndStoreBooleanProperty("search.mods", true);  
184 - this.searchProtectionDomain = this.bootstrap.getAndStoreBooleanProperty("search.jar", true);  
185 - this.searchClassPath = this.bootstrap.getAndStoreBooleanProperty("search.classpath", true); 190 + this.readZipFiles = this.bootstrap.getAndStoreBooleanProperty(OPTION_SEARCH_ZIPFILES, false);
  191 + this.readJarFiles = this.bootstrap.getAndStoreBooleanProperty(OPTION_SEARCH_JARFILES, true);
  192 + this.searchModsFolder = this.bootstrap.getAndStoreBooleanProperty(OPTION_SEARCH_MODS, true);
  193 + this.searchProtectionDomain = this.bootstrap.getAndStoreBooleanProperty(OPTION_SEARCH_JAR, true);
  194 + this.searchClassPath = this.bootstrap.getAndStoreBooleanProperty(OPTION_SEARCH_CLASSPATH, true);
186 195
187 if (!this.searchModsFolder && !this.searchProtectionDomain && !this.searchClassPath) 196 if (!this.searchModsFolder && !this.searchProtectionDomain && !this.searchClassPath)
188 { 197 {
@@ -192,12 +201,18 @@ class LiteLoaderEnumerator implements FilenameFilter @@ -192,12 +201,18 @@ class LiteLoaderEnumerator implements FilenameFilter
192 this.searchProtectionDomain = true; 201 this.searchProtectionDomain = true;
193 this.searchClassPath = true; 202 this.searchClassPath = true;
194 } 203 }
195 -  
196 - this.bootstrap.setBooleanProperty("search.zips", this.readZipFiles);  
197 - this.bootstrap.setBooleanProperty("search.jars", this.readJarFiles);  
198 - this.bootstrap.setBooleanProperty("search.mods", this.searchModsFolder);  
199 - this.bootstrap.setBooleanProperty("search.jar", this.searchProtectionDomain);  
200 - this.bootstrap.setBooleanProperty("search.classpath", this.searchClassPath); 204 + }
  205 +
  206 + /**
  207 + * Write settings
  208 + */
  209 + private void writeSettings()
  210 + {
  211 + this.bootstrap.setBooleanProperty(OPTION_SEARCH_ZIPFILES, this.readZipFiles);
  212 + this.bootstrap.setBooleanProperty(OPTION_SEARCH_JARFILES, this.readJarFiles);
  213 + this.bootstrap.setBooleanProperty(OPTION_SEARCH_MODS, this.searchModsFolder);
  214 + this.bootstrap.setBooleanProperty(OPTION_SEARCH_JAR, this.searchProtectionDomain);
  215 + this.bootstrap.setBooleanProperty(OPTION_SEARCH_CLASSPATH, this.searchClassPath);
201 } 216 }
202 217
203 /** 218 /**
res/liteloader.properties
@@ -3,5 +3,4 @@ search.jar=true @@ -3,5 +3,4 @@ search.jar=true
3 search.classpath=true 3 search.classpath=true
4 log=stderr 4 log=stderr
5 controls.pages=true 5 controls.pages=true
6 -brand=The Voxel Modpack  
7 - 6 +brand=Development version (NOT FOR RELEASE)
8 \ No newline at end of file 7 \ No newline at end of file