diff options
author | Petr Mrázek <peterix@gmail.com> | 2017-09-27 15:39:13 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2017-09-27 15:39:13 +0200 |
commit | c51512f94036b7d13b98cb02b8e8c1e549e7b448 (patch) | |
tree | d44cc40472bf619cdb1a91238c02eaca4e6d0c78 /api/logic/minecraft/legacy/LegacyUpgradeTask.cpp | |
parent | 9a2d203c0d95e51ea02e3e62fef6289973777e84 (diff) | |
download | PrismLauncher-c51512f94036b7d13b98cb02b8e8c1e549e7b448.tar.gz PrismLauncher-c51512f94036b7d13b98cb02b8e8c1e549e7b448.tar.bz2 PrismLauncher-c51512f94036b7d13b98cb02b8e8c1e549e7b448.zip |
NOISSUE use classparser for importing Legacy instances with undecided Minecraft versions
Diffstat (limited to 'api/logic/minecraft/legacy/LegacyUpgradeTask.cpp')
-rw-r--r-- | api/logic/minecraft/legacy/LegacyUpgradeTask.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/api/logic/minecraft/legacy/LegacyUpgradeTask.cpp b/api/logic/minecraft/legacy/LegacyUpgradeTask.cpp index cb0572ed..e41d87cb 100644 --- a/api/logic/minecraft/legacy/LegacyUpgradeTask.cpp +++ b/api/logic/minecraft/legacy/LegacyUpgradeTask.cpp @@ -8,6 +8,7 @@ #include "LegacyInstance.h" #include "minecraft/MinecraftInstance.h" #include "minecraft/MinecraftProfile.h" +#include "classparser.h" LegacyUpgradeTask::LegacyUpgradeTask(SettingsObjectPtr settings, const QString & stagingPath, InstancePtr origInstance, const QString & newName) { @@ -50,7 +51,6 @@ static QString decideVersion(const QString& currentVersion, const QString& inten return intendedVersion; } } - // TODO: possibly add fallback to the old jar/classfile analysis method from MultiMC4 return QString(); } @@ -74,9 +74,17 @@ void LegacyUpgradeTask::copyFinished() QString preferredVersionNumber = decideVersion(legacyInst->currentVersionId(), legacyInst->intendedVersionId()); if(preferredVersionNumber.isNull()) { - // FIXME: let the user decide - emitFailed(tr("Could not decide Minecraft version.")); - return; + // try to decide version based on the jar(s?) + preferredVersionNumber = classparser::GetMinecraftJarVersion(legacyInst->baseJar()); + if(preferredVersionNumber.isNull()) + { + preferredVersionNumber = classparser::GetMinecraftJarVersion(legacyInst->runnableJar()); + if(preferredVersionNumber.isNull()) + { + emitFailed(tr("Could not decide Minecraft version.")); + return; + } + } } inst->setComponentVersion("net.minecraft", preferredVersionNumber); |