| 74 | } |
| 75 | |
| 76 | void FlameMod::loadIndexedPackVersions(ModPlatform::IndexedPack& pack, |
| 77 | QJsonArray& arr, |
| 78 | const shared_qobject_ptr<QNetworkAccessManager>& network, |
| 79 | BaseInstance* inst) |
| 80 | { |
| 81 | QVector<ModPlatform::IndexedVersion> unsortedVersions; |
| 82 | auto profile = (dynamic_cast<MinecraftInstance*>(inst))->getPackProfile(); |
| 83 | QString mcVersion = profile->getComponentVersion("net.minecraft"); |
| 84 | |
| 85 | for (auto versionIter : arr) { |
| 86 | auto obj = versionIter.toObject(); |
| 87 | |
| 88 | auto file = loadIndexedPackVersion(obj); |
| 89 | if(!file.addonId.isValid()) |
| 90 | file.addonId = pack.addonId; |
| 91 | |
| 92 | if(file.fileId.isValid()) // Heuristic to check if the returned value is valid |
| 93 | unsortedVersions.append(file); |
| 94 | } |
| 95 | |
| 96 | auto orderSortPredicate = [](const ModPlatform::IndexedVersion& a, const ModPlatform::IndexedVersion& b) -> bool { |
| 97 | // dates are in RFC 3339 format |
| 98 | return a.date > b.date; |
| 99 | }; |
| 100 | std::sort(unsortedVersions.begin(), unsortedVersions.end(), orderSortPredicate); |
| 101 | pack.versions = unsortedVersions; |
| 102 | pack.versionsLoaded = true; |
| 103 | } |
| 104 | |
| 105 | auto FlameMod::loadIndexedPackVersion(QJsonObject& obj, bool load_changelog) -> ModPlatform::IndexedVersion |
| 106 | { |
nothing calls this directly
no test coverage detected