NOISSUE make FTBA import more lenient towards missing fields

This commit is contained in:
Petr Mrázek
2022-05-29 04:24:55 +02:00
parent 43ebd02dcf
commit f59822fd65

View File

@@ -160,26 +160,26 @@ bool parseModpackJson(const QByteArray& data, Modpack & out) {
{ {
auto document = Json::requireDocument(data); auto document = Json::requireDocument(data);
auto object = Json::requireObject(document); auto object = Json::requireObject(document);
bool isInstalled = Json::requireBoolean(object, "installComplete"); bool isInstalled = Json::ensureBoolean(object, "installComplete", true);
if(!isInstalled) { if(!isInstalled) {
return false; return false;
} }
out.id = Json::requireInteger(object, "id"); out.id = Json::requireInteger(object, "id");
out.name = Json::requireString(object, "name"); out.name = Json::requireString(object, "name");
out.version = Json::requireString(object, "version"); out.version = Json::requireString(object, "version");
out.description = Json::requireString(object, "description"); out.description = Json::ensureString(object, "description", QObject::tr("Description is missing in the FTB App instance."));
auto authorsArray = Json::requireArray(object, "authors"); auto authorsArray = Json::ensureArray(object, "authors", QJsonArray());
for(auto author: authorsArray) { for(auto author: authorsArray) {
out.authors.append(Json::requireString(author)); out.authors.append(Json::requireString(author));
} }
out.mcVersion = Json::requireString(object, "mcVersion"); out.mcVersion = Json::requireString(object, "mcVersion");
out.modLoader = Json::requireString(object, "modLoader"); out.modLoader = Json::ensureString(object, "modLoader", QString());
out.hasInstMods = Json::requireBoolean(object, "hasInstMods"); out.hasInstMods = Json::ensureBoolean(object, "hasInstMods", false);
out.minMemory = Json::requireInteger(object, "minMemory"); out.minMemory = Json::ensureInteger(object, "minMemory", 1024);
out.recMemory = Json::requireInteger(object, "recMemory"); out.recMemory = Json::ensureInteger(object, "recMemory", 2048);
out.memory = Json::requireInteger(object, "memory"); out.memory = Json::ensureInteger(object, "memory", 2048);
return true; return true;
} }
catch (Json::JsonException & e) catch (Json::JsonException & e)