diff options
Diffstat (limited to 'logic')
-rw-r--r-- | logic/launch/steps/CheckJava.cpp | 13 | ||||
-rw-r--r-- | logic/minecraft/LegacyInstance.cpp | 5 | ||||
-rw-r--r-- | logic/minecraft/OneSixInstance.cpp | 5 |
3 files changed, 19 insertions, 4 deletions
diff --git a/logic/launch/steps/CheckJava.cpp b/logic/launch/steps/CheckJava.cpp index 22f62057..4a9fcbf9 100644 --- a/logic/launch/steps/CheckJava.cpp +++ b/logic/launch/steps/CheckJava.cpp @@ -21,15 +21,19 @@ void CheckJava::executeTask() { auto instance = m_parent->instance(); - auto javaPath = instance->settings()->get("JavaPath").toString(); - emit logLine("Java path is:\n" + m_javaPath + "\n\n", MessageLevel::MultiMC); + m_javaPath = instance->settings()->get("JavaPath").toString(); auto realJavaPath = QStandardPaths::findExecutable(m_javaPath); if (realJavaPath.isEmpty()) { - emit logLine(tr("The java binary \"%1\" couldn't be found. You may have to set up java " - "if Minecraft fails to launch.").arg(m_javaPath), + emit logLine(tr("The java binary \"%1\" couldn't be found. Please set up java in the settings.").arg(m_javaPath), MessageLevel::Warning); + emitFailed(tr("Java path is not valid.")); + return; + } + else + { + emit logLine("Java path is:\n" + m_javaPath + "\n\n", MessageLevel::MultiMC); } QFileInfo javaInfo(realJavaPath); @@ -47,6 +51,7 @@ void CheckJava::executeTask() connect(m_JavaChecker.get(), &JavaChecker::checkFinished, this, &CheckJava::checkJavaFinished); m_JavaChecker->m_path = realJavaPath; m_JavaChecker->performCheck(); + return; } emitSucceeded(); } diff --git a/logic/minecraft/LegacyInstance.cpp b/logic/minecraft/LegacyInstance.cpp index 782135eb..9dd50c80 100644 --- a/logic/minecraft/LegacyInstance.cpp +++ b/logic/minecraft/LegacyInstance.cpp @@ -31,6 +31,7 @@ #include <launch/steps/Update.h> #include <launch/steps/PreLaunchCommand.h> #include <launch/steps/TextPrint.h> +#include <launch/steps/CheckJava.h> #include "minecraft/ModList.h" #include <MMCZip.h> @@ -136,6 +137,10 @@ std::shared_ptr<LaunchTask> LegacyInstance::createLaunchTask(AuthSessionPtr sess { process->appendStep(std::make_shared<TextPrint>(pptr, "Minecraft folder is:\n" + minecraftRoot() + "\n\n", MessageLevel::MultiMC)); } + { + auto step = std::make_shared<CheckJava>(pptr); + process->appendStep(step); + } // run pre-launch command if that's needed if(getPreLaunchCommand().size()) { diff --git a/logic/minecraft/OneSixInstance.cpp b/logic/minecraft/OneSixInstance.cpp index 9a7ef99b..6cea55d2 100644 --- a/logic/minecraft/OneSixInstance.cpp +++ b/logic/minecraft/OneSixInstance.cpp @@ -29,6 +29,7 @@ #include <launch/steps/PostLaunchCommand.h> #include <launch/steps/TextPrint.h> #include <launch/steps/ModMinecraftJar.h> +#include <launch/steps/CheckJava.h> #include "minecraft/OneSixProfileStrategy.h" #include "MMCZip.h" @@ -243,6 +244,10 @@ std::shared_ptr<LaunchTask> OneSixInstance::createLaunchTask(AuthSessionPtr sess { process->appendStep(std::make_shared<TextPrint>(pptr, "Minecraft folder is:\n" + minecraftRoot() + "\n\n", MessageLevel::MultiMC)); } + { + auto step = std::make_shared<CheckJava>(pptr); + process->appendStep(step); + } // run pre-launch command if that's needed if(getPreLaunchCommand().size()) { |