Fix crash with invalid quilt mod info
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com> (cherry picked from commit 0626e354a026f9a2a35a4d6e28a0af105cb22986)
This commit is contained in:
parent
5de91076ea
commit
190d17acd3
@ -293,13 +293,13 @@ ModDetails ReadFabricModInfo(QByteArray contents)
|
||||
// https://github.com/QuiltMC/rfcs/blob/master/specification/0002-quilt.mod.json.md
|
||||
ModDetails ReadQuiltModInfo(QByteArray contents)
|
||||
{
|
||||
ModDetails details;
|
||||
try {
|
||||
QJsonParseError jsonError;
|
||||
QJsonDocument jsonDoc = QJsonDocument::fromJson(contents, &jsonError);
|
||||
auto object = Json::requireObject(jsonDoc, "quilt.mod.json");
|
||||
auto schemaVersion = Json::ensureInteger(object.value("schema_version"), 0, "Quilt schema_version");
|
||||
|
||||
ModDetails details;
|
||||
|
||||
// https://github.com/QuiltMC/rfcs/blob/be6ba280d785395fefa90a43db48e5bfc1d15eb4/specification/0002-quilt.mod.json.md
|
||||
if (schemaVersion == 1) {
|
||||
auto modInfo = Json::requireObject(object.value("quilt_loader"), "Quilt mod info");
|
||||
@ -342,8 +342,8 @@ ModDetails ReadQuiltModInfo(QByteArray contents)
|
||||
details.licenses.append(ModLicense(license.toString()));
|
||||
} else if (license.isObject()) {
|
||||
auto obj = license.toObject();
|
||||
details.licenses.append(ModLicense(obj.value("name").toString(), obj.value("id").toString(), obj.value("url").toString(),
|
||||
obj.value("description").toString()));
|
||||
details.licenses.append(ModLicense(obj.value("name").toString(), obj.value("id").toString(),
|
||||
obj.value("url").toString(), obj.value("description").toString()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -374,6 +374,10 @@ ModDetails ReadQuiltModInfo(QByteArray contents)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (const Exception& e) {
|
||||
qWarning() << "Unable to parse mof info:" << e.cause();
|
||||
}
|
||||
return details;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user