Trim unexpected info from pack.mcmeta

Signed-off-by: Dylan Schooner <dschooner05@gmail.com>
This commit is contained in:
Dylan Schooner
2025-12-18 12:34:41 -05:00
parent 018ff600f6
commit 43fce3ae46

View File

@@ -168,10 +168,20 @@ bool processZIP(DataPack* pack, ProcessingLevel level)
// https://minecraft.wiki/w/Tutorials/Creating_a_resource_pack#Formatting_pack.mcmeta
bool processMCMeta(DataPack* pack, QByteArray&& raw_data)
{
try {
auto json_doc = QJsonDocument::fromJson(raw_data);
auto pack_obj = Json::requireObject(json_doc.object(), "pack", {});
QJsonParseError parse_error;
auto json_doc = QJsonDocument::fromJson(raw_data, &parse_error);
if (parse_error.error != QJsonParseError::NoError) {
QByteArray validJson = raw_data.left(parse_error.offset);
json_doc = QJsonDocument::fromJson(validJson, &parse_error);
if (parse_error.error != QJsonParseError::NoError) {
qWarning() << "Failed to parse JSON:" << parse_error.errorString();
return false;
}
}
try {
auto pack_obj = Json::requireObject(json_doc.object(), "pack", {});
pack->setPackFormat(pack_obj["pack_format"].toInt());
pack->setDescription(DataPackUtils::processComponent(pack_obj.value("description")));
} catch (Json::JsonException& e) {