diff options
author | Jamie Mansfield <jmansfield@cadixdev.org> | 2020-08-24 23:13:43 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2021-02-07 23:30:24 +0100 |
commit | ab19b863417d7cfca7ff1a5121c2f41ed0a722d9 (patch) | |
tree | 9e6f2749f8be48315670bb222b2b3d83be799d80 /api/logic/modplatform/atlauncher/ATLPackIndex.cpp | |
parent | 5e980ceef20ea7087b3c04fb7e7691f29363fa3b (diff) | |
download | PrismLauncher-ab19b863417d7cfca7ff1a5121c2f41ed0a722d9.tar.gz PrismLauncher-ab19b863417d7cfca7ff1a5121c2f41ed0a722d9.tar.bz2 PrismLauncher-ab19b863417d7cfca7ff1a5121c2f41ed0a722d9.zip |
GH-405 ATLauncher Support
Diffstat (limited to 'api/logic/modplatform/atlauncher/ATLPackIndex.cpp')
-rw-r--r-- | api/logic/modplatform/atlauncher/ATLPackIndex.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/api/logic/modplatform/atlauncher/ATLPackIndex.cpp b/api/logic/modplatform/atlauncher/ATLPackIndex.cpp new file mode 100644 index 00000000..4d2cf153 --- /dev/null +++ b/api/logic/modplatform/atlauncher/ATLPackIndex.cpp @@ -0,0 +1,33 @@ +#include "ATLPackIndex.h" + +#include <QRegularExpression> + +#include "Json.h" + +static void loadIndexedVersion(ATLauncher::IndexedVersion & v, QJsonObject & obj) +{ + v.version = Json::requireString(obj, "version"); + v.minecraft = Json::requireString(obj, "minecraft"); +} + +void ATLauncher::loadIndexedPack(ATLauncher::IndexedPack & m, QJsonObject & obj) +{ + m.id = Json::requireInteger(obj, "id"); + m.position = Json::requireInteger(obj, "position"); + m.name = Json::requireString(obj, "name"); + m.type = Json::requireString(obj, "type") == "private" ? + ATLauncher::PackType::Private : + ATLauncher::PackType::Public; + auto versionsArr = Json::requireArray(obj, "versions"); + for (const auto versionRaw : versionsArr) + { + auto versionObj = Json::requireObject(versionRaw); + ATLauncher::IndexedVersion version; + loadIndexedVersion(version, versionObj); + m.versions.append(version); + } + m.system = Json::ensureBoolean(obj, "system", false); + m.description = Json::ensureString(obj, "description", ""); + + m.safeName = Json::requireString(obj, "name").replace(QRegularExpression("[^A-Za-z0-9]"), ""); +} |