diff options
Diffstat (limited to 'launcher/modplatform')
-rw-r--r-- | launcher/modplatform/legacy_ftb/PackInstallTask.cpp | 2 | ||||
-rw-r--r-- | launcher/modplatform/modrinth/ModrinthPackIndex.cpp | 40 | ||||
-rw-r--r-- | launcher/modplatform/technic/TechnicPackProcessor.cpp | 2 |
3 files changed, 23 insertions, 21 deletions
diff --git a/launcher/modplatform/legacy_ftb/PackInstallTask.cpp b/launcher/modplatform/legacy_ftb/PackInstallTask.cpp index f655a066..c63a9f1e 100644 --- a/launcher/modplatform/legacy_ftb/PackInstallTask.cpp +++ b/launcher/modplatform/legacy_ftb/PackInstallTask.cpp @@ -114,7 +114,7 @@ void PackInstallTask::install() //ok, found minecraft dir, move contents to instance dir if(!QDir().rename(m_stagingPath + "/unzip/minecraft", m_stagingPath + "/.minecraft")) { - emitFailed(tr("Failed to move unzipped minecraft!")); + emitFailed(tr("Failed to move unzipped Minecraft!")); return; } } diff --git a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp index ab6b451b..82988cf6 100644 --- a/launcher/modplatform/modrinth/ModrinthPackIndex.cpp +++ b/launcher/modplatform/modrinth/ModrinthPackIndex.cpp @@ -52,31 +52,33 @@ void Modrinth::loadIndexedPackVersions(ModPlatform::IndexedPack& pack, auto files = Json::requireArray(obj, "files"); int i = 0; - while (files.count() > 1 && i < files.count()) { - // try to resolve the correct file + + // Find correct file (needed in cases where one version may have multiple files) + // Will default to the last one if there's no primary (though I think Modrinth requires that + // at least one file is primary, idk) + // NOTE: files.count() is 1-indexed, so we need to subtract 1 to become 0-indexed + while (i < files.count() - 1){ auto parent = files[i].toObject(); auto fileName = Json::requireString(parent, "filename"); - // avoid grabbing "dev" files - if (fileName.contains("javadocs", Qt::CaseInsensitive) || fileName.contains("sources", Qt::CaseInsensitive)) { + + // Grab the correct mod loader + if(hasFabric){ + if(fileName.contains("forge",Qt::CaseInsensitive)){ + i++; + continue; + } + } else if(fileName.contains("fabric", Qt::CaseInsensitive)){ i++; continue; } - // grab the correct mod loader - if (fileName.contains("forge", Qt::CaseInsensitive) || fileName.contains("fabric", Qt::CaseInsensitive)) { - if (hasFabric) { - if (fileName.contains("forge", Qt::CaseInsensitive)) { - i++; - continue; - } - } else { - if (fileName.contains("fabric", Qt::CaseInsensitive)) { - i++; - continue; - } - } - } - break; + + // Grab the primary file, if available + if(Json::requireBoolean(parent, "primary")) + break; + + i++; } + auto parent = files[i].toObject(); if (parent.contains("url")) { file.downloadUrl = Json::requireString(parent, "url"); diff --git a/launcher/modplatform/technic/TechnicPackProcessor.cpp b/launcher/modplatform/technic/TechnicPackProcessor.cpp index 156a295a..782fb9b2 100644 --- a/launcher/modplatform/technic/TechnicPackProcessor.cpp +++ b/launcher/modplatform/technic/TechnicPackProcessor.cpp @@ -88,7 +88,7 @@ void Technic::TechnicPackProcessor::run(SettingsObjectPtr globalSettings, const else { if (minecraftVersion.isEmpty()) - emit failed(tr("Could not find \"version.json\" inside \"bin/modpack.jar\", but minecraft version is unknown")); + emit failed(tr("Could not find \"version.json\" inside \"bin/modpack.jar\", but Minecraft version is unknown")); components->setComponentVersion("net.minecraft", minecraftVersion, true); components->installJarMods({modpackJar}); |