Use --fml.modLists instead of --fml.mods to avoid potential cli length limit issues.

This commit is contained in:
Daniel Scalzi 2020-09-05 22:43:09 -04:00
parent e6897dad2c
commit cc86f2a257
No known key found for this signature in database
GPG Key ID: D18EA3FB4B142A57
3 changed files with 41 additions and 15 deletions

View File

@ -23,6 +23,7 @@ class ProcessBuilder {
this.forgeData = forgeData this.forgeData = forgeData
this.authUser = authUser this.authUser = authUser
this.launcherVersion = launcherVersion this.launcherVersion = launcherVersion
this.forgeModListFile = path.join(this.gameDir, 'forgeMods.list') // 1.13+
this.fmlDir = path.join(this.gameDir, 'forgeModList.json') this.fmlDir = path.join(this.gameDir, 'forgeModList.json')
this.llDir = path.join(this.gameDir, 'liteloaderModList.json') this.llDir = path.join(this.gameDir, 'liteloaderModList.json')
this.libPath = path.join(this.commonDir, 'libraries') this.libPath = path.join(this.commonDir, 'libraries')
@ -44,9 +45,9 @@ class ProcessBuilder {
// Mod list below 1.13 // Mod list below 1.13
if(!Util.mcVersionAtLeast('1.13', this.server.getMinecraftVersion())){ if(!Util.mcVersionAtLeast('1.13', this.server.getMinecraftVersion())){
this.constructModList('forge', modObj.fMods, true) this.constructJSONModList('forge', modObj.fMods, true)
if(this.usingLiteLoader){ 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) let args = this.constructJVMArguments(uberModArr, tempNativePath)
if(Util.mcVersionAtLeast('1.13', this.server.getMinecraftVersion())){ 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) logger.log('Launch Arguments:', args)
@ -224,7 +226,7 @@ class ProcessBuilder {
* @param {Array.<Object>} mods An array of mods to add to the mod list. * @param {Array.<Object>} 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. * @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 = { const modList = {
repositoryRoot: ((type === 'forge' && this._requiresAbsolute()) ? 'absolute:' : '') + path.join(this.commonDir, 'modstore') repositoryRoot: ((type === 'forge' && this._requiresAbsolute()) ? 'absolute:' : '') + path.join(this.commonDir, 'modstore')
} }
@ -249,22 +251,46 @@ class ProcessBuilder {
return modList return modList
} }
// /**
// * Construct the mod argument list for forge 1.13
// *
// * @param {Array.<Object>} 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 * Construct the mod argument list for forge 1.13
* *
* @param {Array.<Object>} mods An array of mods to add to the mod list. * @param {Array.<Object>} mods An array of mods to add to the mod list.
*/ */
constructModArguments(mods){ constructModList(mods) {
const argStr = mods.map(mod => { const writeBuffer = mods.map(mod => {
return mod.getExtensionlessID() return mod.getExtensionlessID()
}).join(',') }).join('\n')
if(argStr){ if(writeBuffer) {
fs.writeFileSync(this.forgeModListFile, writeBuffer, 'UTF-8')
return [ return [
'--fml.mavenRoots', '--fml.mavenRoots',
path.join('..', '..', 'common', 'modstore'), path.join('..', '..', 'common', 'modstore'),
'--fml.mods', '--fml.modLists',
argStr this.forgeModListFile
] ]
} else { } else {
return [] return []

6
package-lock.json generated
View File

@ -1000,9 +1000,9 @@
} }
}, },
"electron": { "electron": {
"version": "9.2.1", "version": "9.3.0",
"resolved": "https://registry.npmjs.org/electron/-/electron-9.2.1.tgz", "resolved": "https://registry.npmjs.org/electron/-/electron-9.3.0.tgz",
"integrity": "sha512-ZsetaQjXB8+9/EFW1FnfK4ukpkwXCxMEaiKiUZhZ0ZLFlLnFCpe0Bg4vdDf7e4boWGcnlgN1jAJpBw7w0eXuqA==", "integrity": "sha512-7zPLEZ+kOjVJqfawMQ0vVuZZRqvZIeiID3tbjjbVybbxXIlFMpZ2jogoh7PV3rLrtm+dKRfu7Qc4E7ob1d0FqQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"@electron/get": "^1.0.1", "@electron/get": "^1.0.1",

View File

@ -41,7 +41,7 @@
}, },
"devDependencies": { "devDependencies": {
"cross-env": "^7.0.2", "cross-env": "^7.0.2",
"electron": "^9.2.1", "electron": "^9.3.0",
"electron-builder": "^22.8.0", "electron-builder": "^22.8.0",
"eslint": "^7.8.1" "eslint": "^7.8.1"
}, },