MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / on_state

Method on_state

launcher/minecraft/launch/DirectJavaLaunch.cpp:102–145  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

100}
101
102void DirectJavaLaunch::on_state(LoggedProcess::State state)
103{
104 switch(state)
105 {
106 case LoggedProcess::FailedToStart:
107 {
108 //: Error message displayed if instance can't start
109 const char *reason = QT_TR_NOOP("Could not launch Minecraft!");
110 emit logLine(reason, MessageLevel::Fatal);
111 emitFailed(tr(reason));
112 return;
113 }
114 case LoggedProcess::Aborted:
115 case LoggedProcess::Crashed:
116 {
117 m_parent->setPid(-1);
118 emitFailed(tr("Game crashed."));
119 return;
120 }
121 case LoggedProcess::Finished:
122 {
123 m_parent->setPid(-1);
124 // if the exit code wasn't 0, report this as a crash
125 auto exitCode = m_process.exitCode();
126 if(exitCode != 0)
127 {
128 emitFailed(tr("Game crashed."));
129 return;
130 }
131 //FIXME: make this work again
132 // m_postlaunchprocess.processEnvironment().insert("INST_EXITCODE", QString(exitCode));
133 // run post-exit
134 emitSucceeded();
135 break;
136 }
137 case LoggedProcess::Running:
138 emit logLine(QString("Minecraft process ID: %1\n\n").arg(m_process.processId()), MessageLevel::Launcher);
139 m_parent->setPid(m_process.processId());
140 m_parent->instance()->setLastLaunch();
141 break;
142 default:
143 break;
144 }
145}
146
147void DirectJavaLaunch::setWorkingDirectory(const QString &wd)
148{

Callers

nothing calls this directly

Calls 5

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

Tested by

no test coverage detected