From cc86f2a257c5d5b2e2cd404c8e8799e00364fa07 Mon Sep 17 00:00:00 2001 From: Daniel Scalzi Date: Sat, 5 Sep 2020 22:43:09 -0400 Subject: [PATCH] Use --fml.modLists instead of --fml.mods to avoid potential cli length limit issues. --- app/assets/js/processbuilder.js | 48 +++++++++++++++++++++++++-------- package-lock.json | 6 ++--- package.json | 2 +- 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/app/assets/js/processbuilder.js b/app/assets/js/processbuilder.js index 991d61e..a0f0a73 100644 --- a/app/assets/js/processbuilder.js +++ b/app/assets/js/processbuilder.js @@ -23,6 +23,7 @@ class ProcessBuilder { this.forgeData = forgeData this.authUser = authUser this.launcherVersion = launcherVersion + this.forgeModListFile = path.join(this.gameDir, 'forgeMods.list') // 1.13+ this.fmlDir = path.join(this.gameDir, 'forgeModList.json') this.llDir = path.join(this.gameDir, 'liteloaderModList.json') this.libPath = path.join(this.commonDir, 'libraries') @@ -44,9 +45,9 @@ class ProcessBuilder { // Mod list below 1.13 if(!Util.mcVersionAtLeast('1.13', this.server.getMinecraftVersion())){ - this.constructModList('forge', modObj.fMods, true) + this.constructJSONModList('forge', modObj.fMods, true) if(this.usingLiteLoader){ - this.constructModList('liteloader', modObj.lMods, true) + this.constructJSONModList('liteloader', modObj.lMods, true) } } @@ -54,7 +55,8 @@ class ProcessBuilder { let args = this.constructJVMArguments(uberModArr, tempNativePath) if(Util.mcVersionAtLeast('1.13', this.server.getMinecraftVersion())){ - args = args.concat(this.constructModArguments(modObj.fMods)) + //args = args.concat(this.constructModArguments(modObj.fMods)) + args = args.concat(this.constructModList(modObj.fMods)) } logger.log('Launch Arguments:', args) @@ -224,7 +226,7 @@ class ProcessBuilder { * @param {Array.} mods An array of mods to add to the mod list. * @param {boolean} save Optional. Whether or not we should save the mod list file. */ - constructModList(type, mods, save = false){ + constructJSONModList(type, mods, save = false){ const modList = { repositoryRoot: ((type === 'forge' && this._requiresAbsolute()) ? 'absolute:' : '') + path.join(this.commonDir, 'modstore') } @@ -249,27 +251,51 @@ 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 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 => { + constructModList(mods) { + const writeBuffer = mods.map(mod => { return mod.getExtensionlessID() - }).join(',') + }).join('\n') - if(argStr){ + if(writeBuffer) { + fs.writeFileSync(this.forgeModListFile, writeBuffer, 'UTF-8') return [ '--fml.mavenRoots', path.join('..', '..', 'common', 'modstore'), - '--fml.mods', - argStr + '--fml.modLists', + this.forgeModListFile ] } else { return [] } - + } _processAutoConnectArg(args){ diff --git a/package-lock.json b/package-lock.json index 192ec07..2a1f521 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1000,9 +1000,9 @@ } }, "electron": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-9.2.1.tgz", - "integrity": "sha512-ZsetaQjXB8+9/EFW1FnfK4ukpkwXCxMEaiKiUZhZ0ZLFlLnFCpe0Bg4vdDf7e4boWGcnlgN1jAJpBw7w0eXuqA==", + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/electron/-/electron-9.3.0.tgz", + "integrity": "sha512-7zPLEZ+kOjVJqfawMQ0vVuZZRqvZIeiID3tbjjbVybbxXIlFMpZ2jogoh7PV3rLrtm+dKRfu7Qc4E7ob1d0FqQ==", "dev": true, "requires": { "@electron/get": "^1.0.1", diff --git a/package.json b/package.json index 18dac66..f7b05f6 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ }, "devDependencies": { "cross-env": "^7.0.2", - "electron": "^9.2.1", + "electron": "^9.3.0", "electron-builder": "^22.8.0", "eslint": "^7.8.1" },