Skip to content

Commit

Permalink
Add support for mod loading on Forge 1.13.
Browse files Browse the repository at this point in the history
  • Loading branch information
dscalzi committed Feb 18, 2019
1 parent 81367bc commit e08c3a9
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 6 deletions.
20 changes: 20 additions & 0 deletions app/assets/distribution.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": ""
}
}
]
}
Expand Down
42 changes: 38 additions & 4 deletions app/assets/js/processbuilder.js
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down Expand Up @@ -233,6 +242,29 @@ class ProcessBuilder {
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 argument array that will be passed to the JVM process.
*
Expand Down Expand Up @@ -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')
Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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/)",
Expand Down

0 comments on commit e08c3a9

Please sign in to comment.