MCPcopy Create free account
hub / github.com/MultiMC/Launcher / on_state

Method on_state

launcher/minecraft/launch/DirectJavaLaunch.cpp:84–127  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82}
83
84void 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
129void DirectJavaLaunch::setWorkingDirectory(const QString &wd)
130{

Callers

nothing calls this directly

Calls 6

QStringClass · 0.85
setPidMethod · 0.80
exitCodeMethod · 0.80
processIdMethod · 0.80
setLastLaunchMethod · 0.80
instanceMethod · 0.45

Tested by

no test coverage detected