diff --git a/launcher/ui/pages/modplatform/import_ftb/Model.cpp b/launcher/ui/pages/modplatform/import_ftb/Model.cpp index fd6f71c9..9c336961 100644 --- a/launcher/ui/pages/modplatform/import_ftb/Model.cpp +++ b/launcher/ui/pages/modplatform/import_ftb/Model.cpp @@ -186,6 +186,7 @@ void resolveModloader(QString mcVersion, ModLoader &loader) { { QJsonDocument doc = Json::requireDocument(data); QJsonObject root = Json::requireObject(doc, "version.json"); + bool isProbablyNeoforge = false; for (auto library: Json::ensureArray(root, "libraries", {})) { if (!library.isObject()) @@ -197,6 +198,10 @@ void resolveModloader(QString mcVersion, ModLoader &loader) { GradleSpecifier name = Json::requireString(libraryObject, "name"); auto artifactPrefix = name.artifactPrefix(); + if(artifactPrefix.startsWith("net.neoforged.fancymodloader:")) { + isProbablyNeoforge = true; + break; + } if(artifactPrefix == "net.minecraftforge:forge") { QString libraryVersion = name.version(); loader.type = ModLoaderType::Forge; @@ -231,7 +236,12 @@ void resolveModloader(QString mcVersion, ModLoader &loader) { for (auto arg: gameArgs) { QString value = Json::ensureValueString(arg, QString()); if(versionIsNext) { - loader.type = ModLoaderType::Forge; + if(isProbablyNeoforge) { + loader.type = ModLoaderType::NeoForge; + } + else { + loader.type = ModLoaderType::Forge; + } loader.version = value; return; } diff --git a/launcher/ui/pages/modplatform/import_ftb/Model.h b/launcher/ui/pages/modplatform/import_ftb/Model.h index 765ba22e..37e14327 100644 --- a/launcher/ui/pages/modplatform/import_ftb/Model.h +++ b/launcher/ui/pages/modplatform/import_ftb/Model.h @@ -25,6 +25,7 @@ enum class ModLoaderType { Unresolved, None, Forge, + NeoForge, Fabric, Quilt }; diff --git a/launcher/ui/pages/modplatform/import_ftb/PackInstallTask.cpp b/launcher/ui/pages/modplatform/import_ftb/PackInstallTask.cpp index 0e1a7333..6c0c43ba 100644 --- a/launcher/ui/pages/modplatform/import_ftb/PackInstallTask.cpp +++ b/launcher/ui/pages/modplatform/import_ftb/PackInstallTask.cpp @@ -62,6 +62,10 @@ void PackInstallTask::copyFinished() { components->setComponentVersion("net.minecraftforge", modloader.version, true); break; } + case ModLoaderType::NeoForge: { + components->setComponentVersion("net.neoforged", modloader.version, true); + break; + } case ModLoaderType::Fabric: { components->setComponentVersion("net.fabricmc.fabric-loader", modloader.version, true); break;