Add NeoForge to infer (#1443)

* Add NeoForge inferring

* Add check for if below 1.20.2
This commit is contained in:
Brady 2023-12-05 23:27:03 -03:30 committed by GitHub
parent b453e2cf1a
commit d6ba3f3adf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -95,7 +95,7 @@ export const inferVersionInfo = async function (rawFile, project, gameVersions)
.map((it) => it.version)
const inferFunctions = {
// Forge 1.13+
// Forge 1.13+ and NeoForge
'META-INF/mods.toml': async (file, zip) => {
const metadata = TOML.parse(file, { joiner: '\n' })
@ -122,6 +122,7 @@ export const inferVersionInfo = async function (rawFile, project, gameVersions)
const mcDependencies = Object.values(metadata.dependencies)
.flat()
.filter((dependency) => dependency.modId === 'minecraft')
if (mcDependencies.length > 0) {
gameVersions = getGameVersionsMatchingMavenRange(
mcDependencies[0].versionRange,
@ -129,11 +130,31 @@ export const inferVersionInfo = async function (rawFile, project, gameVersions)
)
}
const hasNeoForge =
Object.values(metadata.dependencies)
.flat()
.filter((dependency) => dependency.modId === 'neoforge').length > 0
const hasForge =
Object.values(metadata.dependencies)
.flat()
.filter((dependency) => dependency.modId === 'forge').length > 0
// Checks if game version is below 1.20.2 as NeoForge full split and id change was in 1.20.2
const below1202 = getGameVersionsMatchingSemverRange('<=1.20.1', simplifiedGameVersions)
const isOlderThan1202 = below1202.some((r) => gameVersions.includes(r))
const loaders = []
if (hasNeoForge) loaders.push('neoforge')
if (hasForge || isOlderThan1202) loaders.push('forge')
return {
name: `${project.title} ${versionNum}`,
version_number: versionNum,
version_type: versionType(versionNum),
loaders: ['forge'],
loaders,
game_versions: gameVersions,
}
} else {
@ -250,6 +271,9 @@ export const inferVersionInfo = async function (rawFile, project, gameVersions)
if ('forge' in metadata.dependencies) {
loaders.push('forge')
}
if ('neoforge' in metadata.dependencies) {
loaders.push('neoforge')
}
if ('fabric-loader' in metadata.dependencies) {
loaders.push('fabric')
}