From a3aeeac2c3bf12ad2a5f0dae0f2fd2ae4442cfde Mon Sep 17 00:00:00 2001 From: Truman Gao <106889354+tdgao@users.noreply.github.com> Date: Tue, 16 Jun 2026 12:47:16 -0600 Subject: [PATCH] fix: babric mods incorrectly detected as fabric (#6407) * fix: babric mods incorrectly detected as fabric * remove: standard version, just check for fabric normalized beta version number * add comment --- .../src/helpers/infer/loader-parsers.ts | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/apps/frontend/src/helpers/infer/loader-parsers.ts b/apps/frontend/src/helpers/infer/loader-parsers.ts index ee453ea1b..476297349 100644 --- a/apps/frontend/src/helpers/infer/loader-parsers.ts +++ b/apps/frontend/src/helpers/infer/loader-parsers.ts @@ -132,23 +132,39 @@ export function createLoaderParsers( ), } }, - // Fabric + // Fabric (or Babric for mc version beta 1.7.3) 'fabric.mod.json': (file: string): InferredVersionInfo => { const metadata = JSON.parse(file) as any - const detectedGameVersions = metadata.depends + const mcDependency = metadata.depends?.minecraft + const mcDependencies = Array.isArray(mcDependency) ? mcDependency : [mcDependency] + + let detectedGameVersions = metadata.depends ? getGameVersionsMatchingSemverRange(metadata.depends.minecraft, simplifiedGameVersions) : [] const loaders: string[] = [] + // Detect Beta 1.7.3 -> Babric + const hasBabricVersion = mcDependencies.some( + (version: string | undefined) => version?.includes('1.0.0-beta.7.3'), // this is fabric's normalized mc version format + ) + // Detect 1.3-1.13 -> legacy-fabric const hasLegacyVersions = detectedGameVersions.some((version) => { const match = version.match(/^1\.(\d+)/) return match && parseInt(match[1]) >= 3 && parseInt(match[1]) <= 13 }) - if (hasLegacyVersions) loaders.push('legacy-fabric') - else loaders.push('fabric') + if (hasBabricVersion) { + loaders.push('babric') + detectedGameVersions = gameVersions + .filter((version) => version.version === 'b1.7.3') + .map((version) => version.version) + } else if (hasLegacyVersions) { + loaders.push('legacy-fabric') + } else { + loaders.push('fabric') + } return { name: `${project.title} ${metadata.version}`,