| 82 | } |
| 83 | |
| 84 | void DirectJavaLaunch::on_state(LoggedProcess::State state) |
| 85 | { |
| 86 | switch(state) |
| 87 | { |
| 88 | case LoggedProcess::FailedToStart: |
| 89 | { |
| 90 | //: Error message displayed if instance can't start |
| 91 | const char *reason = QT_TR_NOOP("Could not launch minecraft!"); |
| 92 | emit logLine(reason, MessageLevel::Fatal); |
| 93 | emitFailed(tr(reason)); |
| 94 | return; |
| 95 | } |
| 96 | case LoggedProcess::Aborted: |
| 97 | case LoggedProcess::Crashed: |
| 98 | { |
| 99 | m_parent->setPid(-1); |
| 100 | emitFailed(tr("Game crashed.")); |
| 101 | return; |
| 102 | } |
| 103 | case LoggedProcess::Finished: |
| 104 | { |
| 105 | m_parent->setPid(-1); |
| 106 | // if the exit code wasn't 0, report this as a crash |
| 107 | auto exitCode = m_process.exitCode(); |
| 108 | if(exitCode != 0) |
| 109 | { |
| 110 | emitFailed(tr("Game crashed.")); |
| 111 | return; |
| 112 | } |
| 113 | //FIXME: make this work again |
| 114 | // m_postlaunchprocess.processEnvironment().insert("INST_EXITCODE", QString(exitCode)); |
| 115 | // run post-exit |
| 116 | emitSucceeded(); |
| 117 | break; |
| 118 | } |
| 119 | case LoggedProcess::Running: |
| 120 | emit logLine(QString("Minecraft process ID: %1\n\n").arg(m_process.processId()), MessageLevel::Launcher); |
| 121 | m_parent->setPid(m_process.processId()); |
| 122 | m_parent->instance()->setLastLaunch(); |
| 123 | break; |
| 124 | default: |
| 125 | break; |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | void DirectJavaLaunch::setWorkingDirectory(const QString &wd) |
| 130 | { |