Different error message if it's a launcher version mismatch
This commit is contained in:
parent
8d0ff99089
commit
4e8be668cb
@ -97,6 +97,13 @@ struct VersionFile
|
||||
QList<Library> addLibs;
|
||||
QList<QString> removeLibs;
|
||||
|
||||
enum ApplyError
|
||||
{
|
||||
LauncherVersionError,
|
||||
OtherError,
|
||||
NoApplyError
|
||||
};
|
||||
|
||||
static Library fromLibraryJson(const QJsonObject &libObj, const QString &filename,
|
||||
bool &isError)
|
||||
{
|
||||
@ -537,10 +544,8 @@ struct VersionFile
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
void applyTo(OneSixVersion *version, bool &isError)
|
||||
ApplyError applyTo(OneSixVersion *version)
|
||||
{
|
||||
isError = true;
|
||||
|
||||
if (minimumLauncherVersion != -1)
|
||||
{
|
||||
if (minimumLauncherVersion > CURRENT_MINIMUM_LAUNCHER_VERSION)
|
||||
@ -548,7 +553,7 @@ struct VersionFile
|
||||
QLOG_ERROR() << filename << "is for a different launcher version ("
|
||||
<< minimumLauncherVersion << "), current supported is"
|
||||
<< CURRENT_MINIMUM_LAUNCHER_VERSION;
|
||||
return;
|
||||
return LauncherVersionError;
|
||||
}
|
||||
}
|
||||
|
||||
@ -558,7 +563,7 @@ struct VersionFile
|
||||
.indexIn(version->id) == -1)
|
||||
{
|
||||
QLOG_ERROR() << filename << "is for a different version of Minecraft";
|
||||
return;
|
||||
return OtherError;
|
||||
}
|
||||
}
|
||||
|
||||
@ -709,7 +714,7 @@ struct VersionFile
|
||||
QLOG_ERROR() << "Error resolving library dependencies between"
|
||||
<< otherLib->rawName() << "and" << lib.name << "in"
|
||||
<< filename;
|
||||
return;
|
||||
return OtherError;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -737,7 +742,7 @@ struct VersionFile
|
||||
QLOG_ERROR() << "Error resolving library dependencies between"
|
||||
<< otherLib->rawName() << "and" << lib.name << "in"
|
||||
<< filename;
|
||||
return;
|
||||
return OtherError;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -781,7 +786,7 @@ struct VersionFile
|
||||
versionFile.order = order;
|
||||
version->versionFiles.append(versionFile);
|
||||
|
||||
isError = false;
|
||||
return NoApplyError;
|
||||
}
|
||||
};
|
||||
|
||||
@ -827,9 +832,8 @@ bool OneSixVersionBuilder::build(const bool onlyVanilla)
|
||||
file.filename = "custom.json";
|
||||
file.fileId = "org.multimc.custom.json";
|
||||
file.version = QString();
|
||||
bool isError = false;
|
||||
file.applyTo(m_version, isError);
|
||||
if (isError)
|
||||
VersionFile::ApplyError error = file.applyTo(m_version);
|
||||
if (error == VersionFile::OtherError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
@ -838,6 +842,13 @@ bool OneSixVersionBuilder::build(const bool onlyVanilla)
|
||||
.arg(root.absoluteFilePath("custom.json")));
|
||||
return false;
|
||||
}
|
||||
else if (error == VersionFile::LauncherVersionError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
QObject::tr("The version descriptors of this instance are now compatible with the current version of MultiMC"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -855,9 +866,8 @@ bool OneSixVersionBuilder::build(const bool onlyVanilla)
|
||||
file.fileId = "org.multimc.version.json";
|
||||
file.version = m_instance->intendedVersionId();
|
||||
file.mcVersion = m_instance->intendedVersionId();
|
||||
bool isError = false;
|
||||
file.applyTo(m_version, isError);
|
||||
if (isError)
|
||||
VersionFile::ApplyError error = file.applyTo(m_version);
|
||||
if (error == VersionFile::OtherError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
@ -866,6 +876,13 @@ bool OneSixVersionBuilder::build(const bool onlyVanilla)
|
||||
.arg(root.absoluteFilePath("version.json")));
|
||||
return false;
|
||||
}
|
||||
else if (error == VersionFile::LauncherVersionError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
QObject::tr("The version descriptors of this instance are now compatible with the current version of MultiMC"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!onlyVanilla)
|
||||
@ -901,9 +918,8 @@ bool OneSixVersionBuilder::build(const bool onlyVanilla)
|
||||
{
|
||||
QLOG_DEBUG() << "Applying file with order" << order;
|
||||
auto filePair = files[order];
|
||||
bool isError = false;
|
||||
filePair.second.applyTo(m_version, isError);
|
||||
if (isError)
|
||||
VersionFile::ApplyError error = filePair.second.applyTo(m_version);
|
||||
if (error == VersionFile::OtherError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
@ -911,6 +927,13 @@ bool OneSixVersionBuilder::build(const bool onlyVanilla)
|
||||
"for more info.").arg(filePair.first));
|
||||
return false;
|
||||
}
|
||||
else if (error == VersionFile::LauncherVersionError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
QObject::tr("The version descriptors of this instance are now compatible with the current version of MultiMC"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -989,14 +1012,21 @@ bool OneSixVersionBuilder::read(const QJsonObject &obj)
|
||||
QObject::tr("Error while reading. Please check MultiMC-0.log for more info."));
|
||||
return false;
|
||||
}
|
||||
file.applyTo(m_version, isError);
|
||||
if (isError)
|
||||
VersionFile::ApplyError error = file.applyTo(m_version);
|
||||
if (error == VersionFile::OtherError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
QObject::tr("Error while applying. Please check MultiMC-0.log for more info."));
|
||||
return false;
|
||||
}
|
||||
else if (error == VersionFile::LauncherVersionError)
|
||||
{
|
||||
QMessageBox::critical(
|
||||
m_widgetParent, QObject::tr("Error"),
|
||||
QObject::tr("The version descriptors of this instance are now compatible with the current version of MultiMC"));
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user