Revert "NOISSUE nuke builtin Minecraft versions"

This reverts commit 5ae3b2c114.

We need those builtin versions for now.
This commit is contained in:
Petr Mrázek
2016-10-20 01:02:28 +02:00
parent 1b4851a941
commit cee53f7f3c
15 changed files with 924 additions and 54 deletions

View File

@@ -3,22 +3,20 @@
#include "VersionBuildError.h"
#include "ProfileUtils.h"
#include "settings/SettingsObject.h"
#include "minecraft/VersionFilterData.h"
bool MinecraftVersion::usesLegacyLauncher()
{
return getReleaseDateTime() < g_VersionFilterData.legacyCutoffDate;
return m_traits.contains("legacyLaunch") || m_traits.contains("aplhaLaunch");
}
QString MinecraftVersion::descriptor()
{
return m_version;
return m_descriptor;
}
QString MinecraftVersion::name()
{
return m_version;
return m_name;
}
QString MinecraftVersion::typeString() const
@@ -62,13 +60,13 @@ bool MinecraftVersion::isMinecraftVersion()
void MinecraftVersion::applyFileTo(MinecraftProfile *profile)
{
if(m_versionSource == Local && getVersionFile())
if(m_versionSource == VersionSource::Local && getVersionFile())
{
getVersionFile()->applyTo(profile);
}
else
{
throw VersionIncomplete(QObject::tr("Can't apply incomplete/builtin Minecraft version %1").arg(m_version));
throw VersionIncomplete(QObject::tr("Can't apply incomplete/builtin Minecraft version %1").arg(m_name));
}
}
@@ -77,7 +75,7 @@ QString MinecraftVersion::getUrl() const
// legacy fallback
if(m_versionFileURL.isEmpty())
{
return QString("http://") + URLConstants::AWS_DOWNLOAD_VERSIONS + m_version + "/" + m_version + ".json";
return QString("http://") + URLConstants::AWS_DOWNLOAD_VERSIONS + m_descriptor + "/" + m_descriptor + ".json";
}
// current
return m_versionFileURL;
@@ -85,8 +83,9 @@ QString MinecraftVersion::getUrl() const
VersionFilePtr MinecraftVersion::getVersionFile()
{
QFileInfo versionFile(QString("versions/%1/%1.dat").arg(m_version));
QFileInfo versionFile(QString("versions/%1/%1.dat").arg(m_descriptor));
m_problems.clear();
m_problemSeverity = PROBLEM_NONE;
if(!versionFile.exists())
{
if(m_loadedVersionFile)
@@ -121,10 +120,12 @@ bool MinecraftVersion::isCustomizable()
{
switch(m_versionSource)
{
case Local:
case Remote:
case VersionSource::Local:
case VersionSource::Remote:
// locally cached file, or a remote file that we can acquire can be customized
return true;
case VersionSource::Builtin:
// builtins do not follow the normal OneSix format. They are not customizable.
default:
// Everything else is undefined and therefore not customizable.
return false;
@@ -134,7 +135,7 @@ bool MinecraftVersion::isCustomizable()
const QList<PatchProblem> &MinecraftVersion::getProblems()
{
if(getVersionFile())
if(m_versionSource != VersionSource::Builtin && getVersionFile())
{
return getVersionFile()->getProblems();
}
@@ -143,7 +144,7 @@ const QList<PatchProblem> &MinecraftVersion::getProblems()
ProblemSeverity MinecraftVersion::getProblemSeverity()
{
if(getVersionFile())
if(m_versionSource != VersionSource::Builtin && getVersionFile())
{
return getVersionFile()->getProblemSeverity();
}
@@ -153,12 +154,24 @@ ProblemSeverity MinecraftVersion::getProblemSeverity()
void MinecraftVersion::applyTo(MinecraftProfile *profile)
{
// do we have this one cached?
if (m_versionSource == Local)
if (m_versionSource == VersionSource::Local)
{
applyFileTo(profile);
return;
}
throw VersionIncomplete(QObject::tr("Minecraft version %1 could not be applied: version files are missing.").arg(m_version));
// if not builtin, do not proceed any further.
if (m_versionSource != VersionSource::Builtin)
{
throw VersionIncomplete(QObject::tr(
"Minecraft version %1 could not be applied: version files are missing.").arg(m_descriptor));
}
profile->applyMinecraftVersion(m_descriptor);
profile->applyMainClass(m_mainClass);
profile->applyAppletClass(m_appletClass);
profile->applyMinecraftArguments(" ${auth_player_name} ${auth_session}"); // all builtin versions are legacy
profile->applyMinecraftVersionType(m_type);
profile->applyTraits(m_traits);
profile->applyProblemSeverity(m_problemSeverity);
}
int MinecraftVersion::getOrder()
@@ -182,7 +195,7 @@ QString MinecraftVersion::getName()
}
QString MinecraftVersion::getVersion()
{
return m_version;
return m_descriptor;
}
QString MinecraftVersion::getID()
{
@@ -200,16 +213,18 @@ QDateTime MinecraftVersion::getReleaseDateTime()
bool MinecraftVersion::needsUpdate()
{
return m_versionSource == Remote || hasUpdate();
return m_versionSource == VersionSource::Remote || hasUpdate();
}
bool MinecraftVersion::hasUpdate()
{
return m_versionSource == Remote || (m_versionSource == Local && upstreamUpdate);
return m_versionSource == VersionSource::Remote || (m_versionSource == VersionSource::Local && upstreamUpdate);
}
bool MinecraftVersion::isCustom()
{
// if we add any other source types, this will evaluate to false for them.
return m_versionSource != Local && m_versionSource != Remote;
return m_versionSource != VersionSource::Builtin
&& m_versionSource != VersionSource::Local
&& m_versionSource != VersionSource::Remote;
}