Fix issue where client slim and extra are appended with -stable on 1.14.4.

This commit is contained in:
Daniel Scalzi
2020-02-25 15:40:27 -05:00
parent 4d7c8e2f9f
commit ef4506a8fd
2 changed files with 68 additions and 47 deletions

View File

@@ -145,12 +145,14 @@ const generateServerCommand: yargs.CommandModule = {
`\n\t├ Forge version: ${argv.forge}`,
`\n\t└ LiteLoader version: ${argv.liteloader}`)
if(argv.forge != null) {
if (VersionUtil.isPromotionVersion(argv.forge as string)) {
console.debug(`Resolving ${argv.forge} Forge Version..`)
const version = await VersionUtil.getPromotedForgeVersion(argv.version as string, argv.forge as string)
console.debug(`Forge version set to ${version}`)
argv.forge = version
}
}
const serverStruct = new ServerStructure(argv.root as string, getBaseURL())
serverStruct.createServer(

View File

@@ -160,35 +160,38 @@ export class Forge113Adapter extends ForgeResolver {
group: LibRepoStructure.FORGE_GROUP,
artifact: LibRepoStructure.FORGE_ARTIFACT,
version: this.artifactVersion,
classifier: undefined
classifiers: [undefined]
},
{
name: 'universal jar',
group: LibRepoStructure.FORGE_GROUP,
artifact: LibRepoStructure.FORGE_ARTIFACT,
version: this.artifactVersion,
classifier: 'universal'
classifiers: ['universal']
},
{
name: 'client jar',
group: LibRepoStructure.FORGE_GROUP,
artifact: LibRepoStructure.FORGE_ARTIFACT,
version: this.artifactVersion,
classifier: 'client'
classifiers: ['client']
},
{
name: 'client slim',
group: LibRepoStructure.MINECRAFT_GROUP,
artifact: LibRepoStructure.MINECRAFT_CLIENT_ARTIFACT,
version: this.minecraftVersion,
classifier: 'slim'
classifiers: [
'slim',
'slim-stable'
]
},
{
name: 'client data',
group: LibRepoStructure.MINECRAFT_GROUP,
artifact: LibRepoStructure.MINECRAFT_CLIENT_ARTIFACT,
version: this.minecraftVersion,
classifier: 'data',
classifiers: ['data'],
skipIfNotPresent: true
},
{
@@ -196,14 +199,17 @@ export class Forge113Adapter extends ForgeResolver {
group: LibRepoStructure.MINECRAFT_GROUP,
artifact: LibRepoStructure.MINECRAFT_CLIENT_ARTIFACT,
version: this.minecraftVersion,
classifier: 'extra'
classifiers: [
'extra',
'extra-stable'
]
},
{
name: 'client srg',
group: LibRepoStructure.MINECRAFT_GROUP,
artifact: LibRepoStructure.MINECRAFT_CLIENT_ARTIFACT,
version: `${this.minecraftVersion}-${mcpVersion}`,
classifier: 'srg'
classifiers: ['srg']
}
]
@@ -211,11 +217,19 @@ export class Forge113Adapter extends ForgeResolver {
for (const entry of generatedFiles) {
const targetLocations: string[] = []
let located = false
classifierLoop:
for (const _classifier of entry.classifiers) {
const targetLocalPath = join(
libDir,
MavenUtil.mavenComponentsToPath(entry.group, entry.artifact, entry.version, entry.classifier)
MavenUtil.mavenComponentsToPath(entry.group, entry.artifact, entry.version, _classifier)
)
targetLocations.push(targetLocalPath)
const exists = await pathExists(targetLocalPath)
if (exists) {
@@ -224,7 +238,7 @@ export class Forge113Adapter extends ForgeResolver {
entry.group,
entry.artifact,
entry.version,
entry.classifier
_classifier
),
name: `Minecraft Forge (${entry.name})`,
type: Type.Library,
@@ -236,7 +250,7 @@ export class Forge113Adapter extends ForgeResolver {
entry.group,
entry.artifact,
entry.version,
entry.classifier
_classifier
)
),
subModules: []
@@ -246,15 +260,20 @@ export class Forge113Adapter extends ForgeResolver {
entry.group,
entry.artifact,
entry.version,
entry.classifier
_classifier
)
await move(targetLocalPath, destination, {overwrite: true})
} else {
if (!entry.skipIfNotPresent) {
throw new Error(`Required file ${entry.name} not found at expected location ${targetLocalPath}!`)
located = true
break classifierLoop
}
}
if (!entry.skipIfNotPresent && !located) {
throw new Error(`Required file ${entry.name} not found at any expected location:\n\t${targetLocations.join('\n\t')}`)
}
}