diff options
Diffstat (limited to 'api/logic/modplatform/atlauncher/ATLPackManifest.cpp')
-rw-r--r-- | api/logic/modplatform/atlauncher/ATLPackManifest.cpp | 218 |
1 files changed, 0 insertions, 218 deletions
diff --git a/api/logic/modplatform/atlauncher/ATLPackManifest.cpp b/api/logic/modplatform/atlauncher/ATLPackManifest.cpp deleted file mode 100644 index e25d8346..00000000 --- a/api/logic/modplatform/atlauncher/ATLPackManifest.cpp +++ /dev/null @@ -1,218 +0,0 @@ -#include "ATLPackManifest.h" - -#include "Json.h" - -static ATLauncher::DownloadType parseDownloadType(QString rawType) { - if(rawType == QString("server")) { - return ATLauncher::DownloadType::Server; - } - else if(rawType == QString("browser")) { - return ATLauncher::DownloadType::Browser; - } - else if(rawType == QString("direct")) { - return ATLauncher::DownloadType::Direct; - } - - return ATLauncher::DownloadType::Unknown; -} - -static ATLauncher::ModType parseModType(QString rawType) { - // See https://wiki.atlauncher.com/mod_types - if(rawType == QString("root")) { - return ATLauncher::ModType::Root; - } - else if(rawType == QString("forge")) { - return ATLauncher::ModType::Forge; - } - else if(rawType == QString("jar")) { - return ATLauncher::ModType::Jar; - } - else if(rawType == QString("mods")) { - return ATLauncher::ModType::Mods; - } - else if(rawType == QString("flan")) { - return ATLauncher::ModType::Flan; - } - else if(rawType == QString("dependency") || rawType == QString("depandency")) { - return ATLauncher::ModType::Dependency; - } - else if(rawType == QString("ic2lib")) { - return ATLauncher::ModType::Ic2Lib; - } - else if(rawType == QString("denlib")) { - return ATLauncher::ModType::DenLib; - } - else if(rawType == QString("coremods")) { - return ATLauncher::ModType::Coremods; - } - else if(rawType == QString("mcpc")) { - return ATLauncher::ModType::MCPC; - } - else if(rawType == QString("plugins")) { - return ATLauncher::ModType::Plugins; - } - else if(rawType == QString("extract")) { - return ATLauncher::ModType::Extract; - } - else if(rawType == QString("decomp")) { - return ATLauncher::ModType::Decomp; - } - else if(rawType == QString("texturepack")) { - return ATLauncher::ModType::TexturePack; - } - else if(rawType == QString("resourcepack")) { - return ATLauncher::ModType::ResourcePack; - } - else if(rawType == QString("shaderpack")) { - return ATLauncher::ModType::ShaderPack; - } - else if(rawType == QString("texturepackextract")) { - return ATLauncher::ModType::TexturePackExtract; - } - else if(rawType == QString("resourcepackextract")) { - return ATLauncher::ModType::ResourcePackExtract; - } - else if(rawType == QString("millenaire")) { - return ATLauncher::ModType::Millenaire; - } - - return ATLauncher::ModType::Unknown; -} - -static void loadVersionLoader(ATLauncher::VersionLoader & p, QJsonObject & obj) { - p.type = Json::requireString(obj, "type"); - p.choose = Json::ensureBoolean(obj, QString("choose"), false); - - auto metadata = Json::requireObject(obj, "metadata"); - 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) { - p.url = Json::requireString(obj, "url"); - p.file = Json::requireString(obj, "file"); - p.md5 = Json::requireString(obj, "md5"); - - p.download_raw = Json::requireString(obj, "download"); - p.download = parseDownloadType(p.download_raw); - - p.server = Json::ensureString(obj, "server", ""); -} - -static void loadVersionConfigs(ATLauncher::VersionConfigs & p, QJsonObject & obj) { - p.filesize = Json::requireInteger(obj, "filesize"); - p.sha1 = Json::requireString(obj, "sha1"); -} - -static void loadVersionMod(ATLauncher::VersionMod & p, QJsonObject & obj) { - p.name = Json::requireString(obj, "name"); - p.version = Json::requireString(obj, "version"); - p.url = Json::requireString(obj, "url"); - p.file = Json::requireString(obj, "file"); - p.md5 = Json::ensureString(obj, "md5", ""); - - p.download_raw = Json::requireString(obj, "download"); - p.download = parseDownloadType(p.download_raw); - - p.type_raw = Json::requireString(obj, "type"); - p.type = parseModType(p.type_raw); - - // This contributes to the Minecraft Forge detection, where we rely on mod.type being "Forge" - // when the mod represents Forge. As there is little difference between "Jar" and "Forge, some - // packs regretfully use "Jar". This will correct the type to "Forge" in these cases (as best - // it can). - if(p.name == QString("Minecraft Forge") && p.type == ATLauncher::ModType::Jar) { - p.type_raw = "forge"; - p.type = ATLauncher::ModType::Forge; - } - - if(obj.contains("extractTo")) { - p.extractTo_raw = Json::requireString(obj, "extractTo"); - p.extractTo = parseModType(p.extractTo_raw); - p.extractFolder = Json::ensureString(obj, "extractFolder", "").replace("%s%", "/"); - } - - if(obj.contains("decompType")) { - p.decompType_raw = Json::requireString(obj, "decompType"); - p.decompType = parseModType(p.decompType_raw); - p.decompFile = Json::requireString(obj, "decompFile"); - } - - p.description = Json::ensureString(obj, QString("description"), ""); - p.optional = Json::ensureBoolean(obj, QString("optional"), false); - p.recommended = Json::ensureBoolean(obj, QString("recommended"), false); - p.selected = Json::ensureBoolean(obj, QString("selected"), false); - p.hidden = Json::ensureBoolean(obj, QString("hidden"), false); - p.library = Json::ensureBoolean(obj, QString("library"), false); - p.group = Json::ensureString(obj, QString("group"), ""); - if(obj.contains("depends")) { - auto dependsArr = Json::requireArray(obj, "depends"); - for (const auto depends : dependsArr) { - p.depends.append(Json::requireString(depends)); - } - } - - p.client = Json::ensureBoolean(obj, QString("client"), false); - - // computed - p.effectively_hidden = p.hidden || p.library; -} - -void ATLauncher::loadVersion(PackVersion & v, QJsonObject & obj) -{ - v.version = Json::requireString(obj, "version"); - v.minecraft = Json::requireString(obj, "minecraft"); - v.noConfigs = Json::ensureBoolean(obj, QString("noConfigs"), false); - - if(obj.contains("mainClass")) { - auto main = Json::requireObject(obj, "mainClass"); - v.mainClass = Json::ensureString(main, "mainClass", ""); - } - - if(obj.contains("extraArguments")) { - auto arguments = Json::requireObject(obj, "extraArguments"); - v.extraArguments = Json::ensureString(arguments, "arguments", ""); - } - - if(obj.contains("loader")) { - auto loader = Json::requireObject(obj, "loader"); - loadVersionLoader(v.loader, loader); - } - - if(obj.contains("libraries")) { - auto libraries = Json::requireArray(obj, "libraries"); - for (const auto libraryRaw : libraries) - { - auto libraryObj = Json::requireObject(libraryRaw); - ATLauncher::VersionLibrary target; - loadVersionLibrary(target, libraryObj); - v.libraries.append(target); - } - } - - 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); - } - } - - if(obj.contains("configs")) { - auto configsObj = Json::requireObject(obj, "configs"); - loadVersionConfigs(v.configs, configsObj); - } -} |