From d22707c7fcbc456eb3410da9b2db5eb1b7c5cecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 10 Mar 2024 04:41:30 +0100 Subject: [PATCH] Try to import neoforged packs from FTB Maybe this will work, maybe it will not. It's better than importing them completely wrong though. --- launcher/ui/pages/modplatform/import_ftb/Model.cpp | 12 +++++++++++- launcher/ui/pages/modplatform/import_ftb/Model.h | 1 + .../pages/modplatform/import_ftb/PackInstallTask.cpp | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) 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;