Check if the json version is one we know how to handle

Also some formatting.
This commit is contained in:
Jan Dalheimer 2014-02-17 17:19:58 +01:00
parent 5cf599673d
commit 549198031d

View File

@ -32,6 +32,8 @@
#include "modutils.h" #include "modutils.h"
#include "logger/QsLog.h" #include "logger/QsLog.h"
#define CURRENT_MINIMUM_LAUNCHER_VERSION 13
struct VersionFile struct VersionFile
{ {
int order; int order;
@ -538,9 +540,22 @@ struct VersionFile
void applyTo(OneSixVersion *version, bool &isError) void applyTo(OneSixVersion *version, bool &isError)
{ {
isError = true; isError = true;
if (minimumLauncherVersion != -1)
{
if (minimumLauncherVersion > CURRENT_MINIMUM_LAUNCHER_VERSION)
{
QLOG_ERROR() << filename << "is for a different launcher version ("
<< minimumLauncherVersion << "), current supported is"
<< CURRENT_MINIMUM_LAUNCHER_VERSION;
return;
}
}
if (!version->id.isNull() && !mcVersion.isNull()) if (!version->id.isNull() && !mcVersion.isNull())
{ {
if (QRegExp(mcVersion, Qt::CaseInsensitive, QRegExp::Wildcard).indexIn(version->id) == -1) if (QRegExp(mcVersion, Qt::CaseInsensitive, QRegExp::Wildcard)
.indexIn(version->id) == -1)
{ {
QLOG_ERROR() << filename << "is for a different version of Minecraft"; QLOG_ERROR() << filename << "is for a different version of Minecraft";
return; return;
@ -876,7 +891,8 @@ bool OneSixVersionBuilder::build(const bool onlyVanilla)
} }
if (files.contains(file.order)) if (files.contains(file.order))
{ {
QLOG_ERROR() << file.fileId << "has the same order as" << files[file.order].second.fileId; QLOG_ERROR() << file.fileId << "has the same order as"
<< files[file.order].second.fileId;
return false; return false;
} }
files.insert(file.order, qMakePair(info.fileName(), file)); files.insert(file.order, qMakePair(info.fileName(), file));
@ -1027,7 +1043,8 @@ QMap<QString, int> OneSixVersionBuilder::readOverrideOrders(OneSixInstance *inst
QFile orderFile(instance->instanceRoot() + "/order.json"); QFile orderFile(instance->instanceRoot() + "/order.json");
if (!orderFile.open(QFile::ReadOnly)) if (!orderFile.open(QFile::ReadOnly))
{ {
QLOG_ERROR() << "Couldn't open" << orderFile.fileName() << " for reading:" << orderFile.errorString(); QLOG_ERROR() << "Couldn't open" << orderFile.fileName()
<< " for reading:" << orderFile.errorString();
QLOG_WARN() << "Ignoring overriden order"; QLOG_WARN() << "Ignoring overriden order";
} }
else else
@ -1036,7 +1053,8 @@ QMap<QString, int> OneSixVersionBuilder::readOverrideOrders(OneSixInstance *inst
QJsonDocument doc = QJsonDocument::fromJson(orderFile.readAll(), &error); QJsonDocument doc = QJsonDocument::fromJson(orderFile.readAll(), &error);
if (error.error != QJsonParseError::NoError || !doc.isObject()) if (error.error != QJsonParseError::NoError || !doc.isObject())
{ {
QLOG_ERROR() << "Couldn't parse" << orderFile.fileName() << ":" << error.errorString(); QLOG_ERROR() << "Couldn't parse" << orderFile.fileName() << ":"
<< error.errorString();
QLOG_WARN() << "Ignoring overriden order"; QLOG_WARN() << "Ignoring overriden order";
} }
else else
@ -1055,7 +1073,8 @@ QMap<QString, int> OneSixVersionBuilder::readOverrideOrders(OneSixInstance *inst
} }
return out; return out;
} }
bool OneSixVersionBuilder::writeOverrideOrders(const QMap<QString, int> &order, OneSixInstance *instance) bool OneSixVersionBuilder::writeOverrideOrders(const QMap<QString, int> &order,
OneSixInstance *instance)
{ {
QJsonObject obj; QJsonObject obj;
for (auto it = order.cbegin(); it != order.cend(); ++it) for (auto it = order.cbegin(); it != order.cend(); ++it)
@ -1069,7 +1088,8 @@ bool OneSixVersionBuilder::writeOverrideOrders(const QMap<QString, int> &order,
QFile orderFile(instance->instanceRoot() + "/order.json"); QFile orderFile(instance->instanceRoot() + "/order.json");
if (!orderFile.open(QFile::WriteOnly)) if (!orderFile.open(QFile::WriteOnly))
{ {
QLOG_ERROR() << "Couldn't open" << orderFile.fileName() << "for writing:" << orderFile.errorString(); QLOG_ERROR() << "Couldn't open" << orderFile.fileName()
<< "for writing:" << orderFile.errorString();
return false; return false;
} }
orderFile.write(QJsonDocument(obj).toJson(QJsonDocument::Indented)); orderFile.write(QJsonDocument(obj).toJson(QJsonDocument::Indented));