diff options
author | Petr Mrázek <peterix@users.noreply.github.com> | 2021-05-15 00:33:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-15 00:33:53 +0200 |
commit | 2f1e8e82a3a2fb16e3970ee6a17f290ef7fe84ab (patch) | |
tree | 6c989e3202e42b0f44ccd42539b198b7cdfe59a5 /api/logic/modplatform/atlauncher/ATLPackManifest.cpp | |
parent | 3d11f9a7e97301483c50621db9a8b9b7b04d790f (diff) | |
parent | df7873eb9a44c70710d86ccdf9975597e941351e (diff) | |
download | PrismLauncher-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.cpp | 33 |
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); + } } } |