MCPcopy Create free account
hub / github.com/PrismLauncher/PrismLauncher / tryNextMajorJava

Method tryNextMajorJava

launcher/minecraft/launch/AutoInstallJava.cpp:206–242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

204}
205
206void AutoInstallJava::tryNextMajorJava()
207{
208 if (!isRunning())
209 return;
210 auto versionList = APPLICATION->metadataIndex()->get("net.minecraft.java");
211 auto packProfile = m_instance->getPackProfile();
212 auto wantedJavaName = packProfile->getProfile()->getCompatibleJavaName();
213 auto majorJavaVersions = packProfile->getProfile()->getCompatibleJavaMajors();
214 if (m_majorJavaVersionIndex >= majorJavaVersions.length()) {
215 emit logLine(
216 tr("No versions of Java were found for your operating system: %1-%2").arg(SysInfo::currentSystem(), SysInfo::useQTForArch()),
217 MessageLevel::Warning);
218 emit logLine(tr("No compatible version of Java was found. Using the default one."), MessageLevel::Warning);
219 emitSucceeded();
220 return;
221 }
222 auto majorJavaVersion = majorJavaVersions[m_majorJavaVersionIndex];
223 m_majorJavaVersionIndex++;
224
225 auto javaMajor = versionList->getVersion(QString("java%1").arg(majorJavaVersion));
226
227 if (javaMajor->isLoaded()) {
228 downloadJava(javaMajor, wantedJavaName);
229 } else {
230 m_current_task = APPLICATION->metadataIndex()->loadVersion("net.minecraft.java", javaMajor->version(), Net::Mode::Online);
231 connect(m_current_task.get(), &Task::succeeded, this,
232 [this, javaMajor, wantedJavaName] { downloadJava(javaMajor, wantedJavaName); });
233 connect(m_current_task.get(), &Task::failed, this, &AutoInstallJava::tryNextMajorJava);
234 connect(m_current_task.get(), &Task::progress, this, &AutoInstallJava::setProgress);
235 connect(m_current_task.get(), &Task::stepProgress, this, &AutoInstallJava::propagateStepProgress);
236 connect(m_current_task.get(), &Task::status, this, &AutoInstallJava::setStatus);
237 connect(m_current_task.get(), &Task::details, this, &AutoInstallJava::setDetails);
238 if (!m_current_task->isRunning()) {
239 m_current_task->start();
240 }
241 }
242}
243bool AutoInstallJava::abort()
244{
245 if (m_current_task && m_current_task->canAbort()) {

Callers

nothing calls this directly

Calls 14

currentSystemFunction · 0.85
useQTForArchFunction · 0.85
metadataIndexMethod · 0.80
getPackProfileMethod · 0.80
getCompatibleJavaNameMethod · 0.80
getProfileMethod · 0.80
QStringClass · 0.50
getMethod · 0.45
getVersionMethod · 0.45
isLoadedMethod · 0.45
loadVersionMethod · 0.45
versionMethod · 0.45

Tested by

no test coverage detected