From e08c3a903aad1f2d0a996ab9958c1b6eedd546f6 Mon Sep 17 00:00:00 2001 From: Daniel Scalzi Date: Mon, 18 Feb 2019 18:17:31 -0500 Subject: [PATCH] Add support for mod loading on Forge 1.13. --- app/assets/distribution.json | 20 ++++++++++++++++ app/assets/js/processbuilder.js | 42 +++++++++++++++++++++++++++++---- package-lock.json | 2 +- package.json | 2 +- 4 files changed, 60 insertions(+), 6 deletions(-) diff --git a/app/assets/distribution.json b/app/assets/distribution.json index 8d5c678..6719c6d 100644 --- a/app/assets/distribution.json +++ b/app/assets/distribution.json @@ -1547,6 +1547,26 @@ } ] + }, + { + "id": "squeek:appleskin:1.0.9", + "name": "AppleSkin (test mod)", + "type": "ForgeMod", + "artifact": { + "size": 26613, + "MD5": "ada2e02e0cc3267f5d927805332c4c8b", + "url": "" + } + }, + { + "id": "com.blamejared:controlling:4.0.1", + "name": "Controlling (Test Mod)", + "type": "ForgeMod", + "artifact": { + "size": 34914, + "MD5": "b4dc10b9039518ce00845ca962e6a136", + "url": "" + } } ] } diff --git a/app/assets/js/processbuilder.js b/app/assets/js/processbuilder.js index f6b9b56..db12ade 100644 --- a/app/assets/js/processbuilder.js +++ b/app/assets/js/processbuilder.js @@ -41,12 +41,21 @@ class ProcessBuilder { this.setupLiteLoader() logger.log('Using liteloader:', this.usingLiteLoader) const modObj = this.resolveModConfiguration(ConfigManager.getModConfiguration(this.server.getID()).mods, this.server.getModules()) - this.constructModList('forge', modObj.fMods, true) - if(this.usingLiteLoader){ - this.constructModList('liteloader', modObj.lMods, true) + + // Mod list below 1.13 + if(!AssetGuard.mcVersionAtLeast('1.13', this.server.getMinecraftVersion())){ + this.constructModList('forge', modObj.fMods, true) + if(this.usingLiteLoader){ + this.constructModList('liteloader', modObj.lMods, true) + } } + const uberModArr = modObj.fMods.concat(modObj.lMods) - const args = this.constructJVMArguments(uberModArr, tempNativePath) + let args = this.constructJVMArguments(uberModArr, tempNativePath) + + if(AssetGuard.mcVersionAtLeast('1.13', this.server.getMinecraftVersion())){ + args = args.concat(this.constructModArguments(modObj.fMods)) + } logger.log('Launch Arguments:', args) @@ -233,6 +242,29 @@ class ProcessBuilder { return modList } + /** + * Construct the mod argument list for forge 1.13 + * + * @param {Array.} mods An array of mods to add to the mod list. + */ + constructModArguments(mods){ + const argStr = mods.map(mod => { + return mod.getExtensionlessID() + }).join(',') + + if(argStr){ + return [ + '--fml.mavenRoots', + path.join('..', '..', 'common', 'modstore'), + '--fml.mods', + argStr + ] + } else { + return [] + } + + } + /** * Construct the argument array that will be passed to the JVM process. * @@ -300,6 +332,8 @@ class ProcessBuilder { // JVM Arguments First let args = this.versionData.arguments.jvm + //args.push('-Dlog4j.configurationFile=D:\\WesterosCraft\\game\\common\\assets\\log_configs\\client-1.12.xml') + // Java Arguments if(process.platform === 'darwin'){ args.push('-Xdock:name=WesterosCraft') diff --git a/package-lock.json b/package-lock.json index 390acf5..bb7d0bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "westeroscraftlauncher", - "version": "1.5.2", + "version": "1.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c7ea844..27b04fd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "westeroscraftlauncher", - "version": "1.5.2", + "version": "1.6.0", "productName": "WesterosCraft Launcher", "description": "Modded Minecraft Launcher", "author": "Daniel Scalzi (https://github.com/dscalzi/)",