From cee53f7f3ceb120aac83dbb60683fb228b385c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 20 Oct 2016 01:02:28 +0200 Subject: Revert "NOISSUE nuke builtin Minecraft versions" This reverts commit 5ae3b2c11416eb897a08b0d9531843d0357332f8. We need those builtin versions for now. --- api/logic/minecraft/MinecraftVersion.cpp | 53 ++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 19 deletions(-) (limited to 'api/logic/minecraft/MinecraftVersion.cpp') diff --git a/api/logic/minecraft/MinecraftVersion.cpp b/api/logic/minecraft/MinecraftVersion.cpp index 1e1d273c..248c7eed 100644 --- a/api/logic/minecraft/MinecraftVersion.cpp +++ b/api/logic/minecraft/MinecraftVersion.cpp @@ -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 &MinecraftVersion::getProblems() { - if(getVersionFile()) + if(m_versionSource != VersionSource::Builtin && getVersionFile()) { return getVersionFile()->getProblems(); } @@ -143,7 +144,7 @@ const QList &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; } -- cgit v1.2.3