From afe4159a2a9462484f5dc1ce2a85d193bf836708 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Thu, 27 Nov 2025 23:52:56 +0200 Subject: [PATCH] fix incorrect version asignment Signed-off-by: Trial97 --- launcher/InstanceImportTask.cpp | 3 ++- launcher/modplatform/flame/FlameAPI.cpp | 8 ++++---- launcher/modplatform/helpers/GetModPackExtraInfoTask.cpp | 2 +- launcher/modplatform/modrinth/ModrinthAPI.cpp | 3 ++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/launcher/InstanceImportTask.cpp b/launcher/InstanceImportTask.cpp index d362123a1..0cd3dc8ff 100644 --- a/launcher/InstanceImportTask.cpp +++ b/launcher/InstanceImportTask.cpp @@ -441,7 +441,8 @@ void InstanceImportTask::processExtraInfoPack() } auto populateExtraInfo = [this](GetModPackExtraInfoTask* task) { m_extra_info.insert("pack_id", task->getVersion().addonId.toString()); - m_extra_info.insert("pack_version_id", task->getVersion().version); + m_extra_info.insert("pack_version_id", task->getVersion().fileId.toString()); + m_original_version = task->getVersion().version; setIcon(task->getLogoName()); }; auto modrinthTask = makeShared(m_archivePath, ModPlatform::ResourceProvider::MODRINTH); diff --git a/launcher/modplatform/flame/FlameAPI.cpp b/launcher/modplatform/flame/FlameAPI.cpp index 11809c668..97c5fffb6 100644 --- a/launcher/modplatform/flame/FlameAPI.cpp +++ b/launcher/modplatform/flame/FlameAPI.cpp @@ -277,7 +277,7 @@ std::optional FlameAPI::getLatestVersion(QList(); - auto ver_task = matchFingerprints({ hash.toUInt() }, response); + auto ver_task = matchFingerprints({ hash.toUInt() }, response.get()); QObject::connect(ver_task.get(), &Task::succeeded, [response, &output, hash] { QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error); @@ -299,15 +299,15 @@ Task::Ptr FlameAPI::getVersionFromHash(QString hash, ModPlatform::IndexedVersion } for (auto match : data_arr) { - auto match_obj = Json::ensureObject(match, {}); - auto file_obj = Json::ensureObject(match_obj, "file", {}); + auto match_obj = match.toObject(); + auto file_obj = match_obj["file"].toObject(); if (match_obj.isEmpty() || file_obj.isEmpty()) { qWarning() << "Fingerprint match is empty!"; continue; } - auto fingerprint = QString::number(Json::ensureVariant(file_obj, "fileFingerprint").toUInt()); + auto fingerprint = QString::number(file_obj["fileFingerprint"].toInt()); if (fingerprint != hash) continue; output = FlameMod::loadIndexedPackVersion(file_obj); diff --git a/launcher/modplatform/helpers/GetModPackExtraInfoTask.cpp b/launcher/modplatform/helpers/GetModPackExtraInfoTask.cpp index 4350d0a7d..5fd7985ee 100644 --- a/launcher/modplatform/helpers/GetModPackExtraInfoTask.cpp +++ b/launcher/modplatform/helpers/GetModPackExtraInfoTask.cpp @@ -129,7 +129,7 @@ void GetModPackExtraInfoTask::getProjectInfo() setStatus(tr("Get project information")); setProgress(3, 4); auto responseInfo = std::make_shared(); - auto projectTask = m_api->getProject(m_version.addonId.toString(), responseInfo); + auto projectTask = m_api->getProject(m_version.addonId.toString(), responseInfo.get()); connect(projectTask.get(), &Task::succeeded, [responseInfo, this] { QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*responseInfo, &parse_error); diff --git a/launcher/modplatform/modrinth/ModrinthAPI.cpp b/launcher/modplatform/modrinth/ModrinthAPI.cpp index 0eedb83f8..5a6129e51 100644 --- a/launcher/modplatform/modrinth/ModrinthAPI.cpp +++ b/launcher/modplatform/modrinth/ModrinthAPI.cpp @@ -167,11 +167,12 @@ QList ModrinthAPI::loadModCategories(const QByteArray& re { return loadCategories(response, "mod"); } + Task::Ptr ModrinthAPI::getVersionFromHash(QString hash, ModPlatform::IndexedVersion& output) { auto hash_type = ModPlatform::ProviderCapabilities::hashType(ModPlatform::ResourceProvider::MODRINTH).first(); auto response = std::make_shared(); - auto ver_task = currentVersion(hash, hash_type, response); + auto ver_task = currentVersion(hash, hash_type, response.get()); QObject::connect(ver_task.get(), &Task::succeeded, [response, &output] { QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error);