This commit is contained in:
Kamesuta 2023-10-22 18:22:31 +00:00 committed by GitHub
commit 6f0ab3a130
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 35 additions and 0 deletions

View File

@ -836,6 +836,13 @@ class ProcessBuilder {
libs = {...libs, ...res} libs = {...libs, ...res}
} }
} }
} else if(type === Type.Forge){
// Forge installer generated libraries
const forgeLibs = []
for (const library of this.forgeData.libraries) {
forgeLibs.push(path.join(ConfigManager.getCommonDirectory(), 'libraries', library.downloads.artifact.path))
}
libs = {...libs, ...forgeLibs}
} }
} }

View File

@ -5,6 +5,7 @@
const cp = require('child_process') const cp = require('child_process')
const crypto = require('crypto') const crypto = require('crypto')
const { URL } = require('url') const { URL } = require('url')
const { join } = require('path')
const { const {
MojangRestAPI, MojangRestAPI,
getServerStatus getServerStatus
@ -550,6 +551,33 @@ async function dlAsync(login = true) {
serv.rawServer.id serv.rawServer.id
) )
// Install Forge
let wrapperPath
if(isDev) {
wrapperPath = join(process.cwd(), 'libraries', 'java', 'ForgeInstallerCLI.jar')
} else {
const exePath = remote.app.getPath('exe')
if(process.platform === 'darwin'){
wrapperPath = join(exePath, '..', '..', 'Resources', 'libraries', 'java', 'ForgeInstallerCLI.jar')
} else {
wrapperPath = join(exePath, '..', 'resources', 'libraries', 'java', 'ForgeInstallerCLI.jar')
}
}
// Launch Forge Installer
loggerLaunchSuite.info('Installing Forge.')
setLaunchDetails('Installing Forge..')
setLaunchPercentage(0)
const jExe = ConfigManager.getJavaExecutable(ConfigManager.getSelectedServer())
await distributionIndexProcessor.installForge(jExe, wrapperPath, percent => {
setDownloadPercentage(percent)
})
setDownloadPercentage(100)
// Remove download bar.
remote.getCurrentWindow().setProgressBar(-1)
// After Forge installed, we can get the Forge version data.
const forgeData = await distributionIndexProcessor.loadForgeVersionJson(serv) const forgeData = await distributionIndexProcessor.loadForgeVersionJson(serv)
const versionData = await mojangIndexProcessor.getVersionJson() const versionData = await mojangIndexProcessor.getVersionJson()

Binary file not shown.