From 7ef1f88de773c22e4e78c9bfb900b2674d9adb2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 18 Oct 2015 02:35:47 +0200 Subject: [PATCH] NOISSUE fix non-zero exit code from minecraft not being a 'crash' --- logic/launch/LoggedProcess.cpp | 5 ++++- logic/launch/steps/LaunchMinecraft.cpp | 8 +++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/logic/launch/LoggedProcess.cpp b/logic/launch/LoggedProcess.cpp index 53840621..f6c866de 100644 --- a/logic/launch/LoggedProcess.cpp +++ b/logic/launch/LoggedProcess.cpp @@ -36,6 +36,9 @@ void LoggedProcess::on_stdOut() void LoggedProcess::on_exit(int exit_code, QProcess::ExitStatus status) { + // save the exit code + m_exit_code = exit_code; + // Flush console window if (!m_err_leftover.isEmpty()) { @@ -61,7 +64,7 @@ void LoggedProcess::on_exit(int exit_code, QProcess::ExitStatus status) { //: Message displayed on instance crashed if(exit_code == -1) - emit log({tr("Process crashed.").arg(exit_code)}, MessageLevel::MultiMC); + emit log({tr("Process crashed.")}, MessageLevel::MultiMC); else emit log({tr("Process crashed with exitcode %1.").arg(exit_code)}, MessageLevel::MultiMC); changeState(LoggedProcess::Crashed); diff --git a/logic/launch/steps/LaunchMinecraft.cpp b/logic/launch/steps/LaunchMinecraft.cpp index 0cbf5f3a..05b1d948 100644 --- a/logic/launch/steps/LaunchMinecraft.cpp +++ b/logic/launch/steps/LaunchMinecraft.cpp @@ -88,8 +88,14 @@ void LaunchMinecraft::on_state(LoggedProcess::State state) case LoggedProcess::Finished: { m_parent->setPid(-1); + // if the exit code wasn't 0, report this as a crash + auto exitCode = m_process.exitCode(); + if(exitCode != 0) + { + emitFailed("Game crashed."); + return; + } //FIXME: make this work again - // auto exitCode = m_process.exitCode(); // m_postlaunchprocess.processEnvironment().insert("INST_EXITCODE", QString(exitCode)); // run post-exit emitSucceeded();