Fail with a more useful error message if the forge installer was not run correctly.
This commit is contained in:
@@ -4,7 +4,7 @@ import { LoggerUtil } from '../../../util/LoggerUtil'
|
|||||||
import { VersionUtil } from '../../../util/versionutil'
|
import { VersionUtil } from '../../../util/versionutil'
|
||||||
import { Module, Type } from 'helios-distribution-types'
|
import { Module, Type } from 'helios-distribution-types'
|
||||||
import { LibRepoStructure } from '../../../structure/repo/LibRepo.struct'
|
import { LibRepoStructure } from '../../../structure/repo/LibRepo.struct'
|
||||||
import { pathExists, remove, mkdirs, copy, writeFile, readFile, lstat, writeJson } from 'fs-extra'
|
import { pathExists, remove, mkdirs, copy, writeFile, readFile, lstat, writeJson, exists } from 'fs-extra'
|
||||||
import { join, basename, dirname } from 'path'
|
import { join, basename, dirname } from 'path'
|
||||||
import { spawn } from 'child_process'
|
import { spawn } from 'child_process'
|
||||||
import { JavaUtil } from '../../../util/java/javautil'
|
import { JavaUtil } from '../../../util/java/javautil'
|
||||||
@@ -303,6 +303,8 @@ export class ForgeGradle3Adapter extends ForgeResolver {
|
|||||||
ForgeGradle3Adapter.logger.debug('Installer finished, beginning processing..')
|
ForgeGradle3Adapter.logger.debug('Installer finished, beginning processing..')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await this.verifyInstallerRan(installerOutputDir)
|
||||||
|
|
||||||
ForgeGradle3Adapter.logger.debug('Processing Version Manifest')
|
ForgeGradle3Adapter.logger.debug('Processing Version Manifest')
|
||||||
const versionManifestTuple = await this.processVersionManifest(installerOutputDir)
|
const versionManifestTuple = await this.processVersionManifest(installerOutputDir)
|
||||||
const versionManifest = versionManifestTuple[0] as VersionManifestFG3
|
const versionManifest = versionManifestTuple[0] as VersionManifestFG3
|
||||||
@@ -328,10 +330,24 @@ export class ForgeGradle3Adapter extends ForgeResolver {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async processVersionManifest(installerOutputDir: string): Promise<[VersionManifestFG3, Module]> {
|
private getVersionManifestPath(installerOutputDir: string): string {
|
||||||
const versionRepo = this.repoStructure.getVersionRepoStruct()
|
const versionRepo = this.repoStructure.getVersionRepoStruct()
|
||||||
const versionName = versionRepo.getFileName(this.minecraftVersion, this.forgeVersion)
|
const versionName = versionRepo.getFileName(this.minecraftVersion, this.forgeVersion)
|
||||||
const versionManifestPath = join(installerOutputDir, 'versions', versionName, `${versionName}.json`)
|
return join(installerOutputDir, 'versions', versionName, `${versionName}.json`)
|
||||||
|
}
|
||||||
|
|
||||||
|
private async verifyInstallerRan(installerOutputDir: string): Promise<void> {
|
||||||
|
const versionManifestPath = this.getVersionManifestPath(installerOutputDir)
|
||||||
|
|
||||||
|
if(!await exists(versionManifestPath)) {
|
||||||
|
await remove(installerOutputDir)
|
||||||
|
throw new Error(`Forge was either not installed or installed to the wrong location. When the forge installer opens, you MUST set the installation directory to ${installerOutputDir}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private async processVersionManifest(installerOutputDir: string): Promise<[VersionManifestFG3, Module]> {
|
||||||
|
const versionRepo = this.repoStructure.getVersionRepoStruct()
|
||||||
|
const versionManifestPath = this.getVersionManifestPath(installerOutputDir)
|
||||||
|
|
||||||
const versionManifestBuf = await readFile(versionManifestPath)
|
const versionManifestBuf = await readFile(versionManifestPath)
|
||||||
const versionManifest = JSON.parse(versionManifestBuf.toString()) as VersionManifestFG3
|
const versionManifest = JSON.parse(versionManifestBuf.toString()) as VersionManifestFG3
|
||||||
|
|||||||
Reference in New Issue
Block a user