aboutsummaryrefslogtreecommitdiff
path: root/api/logic/modplatform/atlauncher/ATLPackManifest.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@users.noreply.github.com>2021-05-15 00:33:53 +0200
committerGitHub <noreply@github.com>2021-05-15 00:33:53 +0200
commit2f1e8e82a3a2fb16e3970ee6a17f290ef7fe84ab (patch)
tree6c989e3202e42b0f44ccd42539b198b7cdfe59a5 /api/logic/modplatform/atlauncher/ATLPackManifest.cpp
parent3d11f9a7e97301483c50621db9a8b9b7b04d790f (diff)
parentdf7873eb9a44c70710d86ccdf9975597e941351e (diff)
downloadPrismLauncher-2f1e8e82a3a2fb16e3970ee6a17f290ef7fe84ab.tar.gz
PrismLauncher-2f1e8e82a3a2fb16e3970ee6a17f290ef7fe84ab.tar.bz2
PrismLauncher-2f1e8e82a3a2fb16e3970ee6a17f290ef7fe84ab.zip
Merge pull request #3729 from jamierocks/atl-loader-targets
Various ATLauncher improvements and bug fixes
Diffstat (limited to 'api/logic/modplatform/atlauncher/ATLPackManifest.cpp')
-rw-r--r--api/logic/modplatform/atlauncher/ATLPackManifest.cpp33
1 files changed, 23 insertions, 10 deletions
diff --git a/api/logic/modplatform/atlauncher/ATLPackManifest.cpp b/api/logic/modplatform/atlauncher/ATLPackManifest.cpp
index 84389330..57cc52b6 100644
--- a/api/logic/modplatform/atlauncher/ATLPackManifest.cpp
+++ b/api/logic/modplatform/atlauncher/ATLPackManifest.cpp
@@ -81,12 +81,21 @@ static ATLauncher::ModType parseModType(QString rawType) {
static void loadVersionLoader(ATLauncher::VersionLoader & p, QJsonObject & obj) {
p.type = Json::requireString(obj, "type");
- p.latest = Json::ensureBoolean(obj, QString("latest"), false);
p.choose = Json::ensureBoolean(obj, QString("choose"), false);
- p.recommended = Json::ensureBoolean(obj, QString("recommended"), false);
auto metadata = Json::requireObject(obj, "metadata");
- p.version = Json::requireString(metadata, "version");
+ p.latest = Json::ensureBoolean(metadata, QString("latest"), false);
+ p.recommended = Json::ensureBoolean(metadata, QString("recommended"), false);
+
+ // Minecraft Forge
+ if (p.type == "forge") {
+ p.version = Json::ensureString(metadata, "version", "");
+ }
+
+ // Fabric Loader
+ if (p.type == "fabric") {
+ p.version = Json::ensureString(metadata, "loader", "");
+ }
}
static void loadVersionLibrary(ATLauncher::VersionLibrary & p, QJsonObject & obj) {
@@ -135,6 +144,7 @@ static void loadVersionMod(ATLauncher::VersionMod & p, QJsonObject & obj) {
}
p.optional = Json::ensureBoolean(obj, QString("optional"), false);
+ p.client = Json::ensureBoolean(obj, QString("client"), false);
}
void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj)
@@ -169,12 +179,15 @@ void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj)
}
}
- auto mods = Json::requireArray(obj, "mods");
- for (const auto modRaw : mods)
- {
- auto modObj = Json::requireObject(modRaw);
- ATLauncher::VersionMod mod;
- loadVersionMod(mod, modObj);
- v.mods.append(mod);
+
+ if(obj.contains("mods")) {
+ auto mods = Json::requireArray(obj, "mods");
+ for (const auto modRaw : mods)
+ {
+ auto modObj = Json::requireObject(modRaw);
+ ATLauncher::VersionMod mod;
+ loadVersionMod(mod, modObj);
+ v.mods.append(mod);
+ }
}
}