Commit b8f2dadef16c52ecc996105e426653efb128ffaa
1 parent
86bd548c
LiteLoader 1.6.4_02 - fixed missing config dir causing crash with new startup or…
…der, minor config changes
Showing
4 changed files
with
45 additions
and
18 deletions
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 |