summaryrefslogtreecommitdiffstats
path: root/logic/minecraft/VersionBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logic/minecraft/VersionBuilder.cpp')
-rw-r--r--logic/minecraft/VersionBuilder.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/logic/minecraft/VersionBuilder.cpp b/logic/minecraft/VersionBuilder.cpp
index d19c2877..cff70821 100644
--- a/logic/minecraft/VersionBuilder.cpp
+++ b/logic/minecraft/VersionBuilder.cpp
@@ -237,6 +237,25 @@ VersionFilePtr VersionBuilder::parseJsonFile(const QFileInfo &fileInfo, const bo
// info.").arg(file.fileName());
}
+VersionFilePtr VersionBuilder::parseBinaryJsonFile(const QFileInfo &fileInfo)
+{
+ QFile file(fileInfo.absoluteFilePath());
+ if (!file.open(QFile::ReadOnly))
+ {
+ throw JSONValidationError(QObject::tr("Unable to open the version file %1: %2.")
+ .arg(fileInfo.fileName(), file.errorString()));
+ }
+ QJsonDocument doc = QJsonDocument::fromBinaryData(file.readAll());
+ file.close();
+ if (doc.isNull())
+ {
+ file.remove();
+ throw JSONValidationError(
+ QObject::tr("Unable to process the version file %1.").arg(fileInfo.fileName()));
+ }
+ return VersionFile::fromJson(doc, file.fileName(), false, false);
+}
+
QMap<QString, int> VersionBuilder::readOverrideOrders(OneSixInstance *instance)
{
QMap<QString, int> out;