diff --git a/launcher/minecraft/launch/AutoInstallJava.cpp b/launcher/minecraft/launch/AutoInstallJava.cpp index eefed9cf5..d43f41ddb 100644 --- a/launcher/minecraft/launch/AutoInstallJava.cpp +++ b/launcher/minecraft/launch/AutoInstallJava.cpp @@ -121,6 +121,9 @@ void AutoInstallJava::executeTask() connect(m_current_task.get(), &Task::stepProgress, this, &AutoInstallJava::propagateStepProgress); connect(m_current_task.get(), &Task::status, this, &AutoInstallJava::setStatus); connect(m_current_task.get(), &Task::details, this, &AutoInstallJava::setDetails); + if (!m_current_task->isRunning()) { + m_current_task->start(); + } emit progressReportingRequest(); } @@ -213,11 +216,11 @@ void AutoInstallJava::tryNextMajorJava() m_majorJavaVersionIndex++; auto javaMajor = versionList->getVersion(QString("java%1").arg(majorJavaVersion)); - javaMajor->load(Net::Mode::Online); - m_current_task = javaMajor->getCurrentTask(); - if (javaMajor->isLoaded() || !m_current_task) { + + if (javaMajor->isLoaded()) { downloadJava(javaMajor, wantedJavaName); } else { + m_current_task = APPLICATION->metadataIndex()->loadVersion("net.minecraft.java", javaMajor->version(), Net::Mode::Online); connect(m_current_task.get(), &Task::succeeded, this, [this, javaMajor, wantedJavaName] { downloadJava(javaMajor, wantedJavaName); }); connect(m_current_task.get(), &Task::failed, this, &AutoInstallJava::tryNextMajorJava); @@ -225,6 +228,9 @@ void AutoInstallJava::tryNextMajorJava() connect(m_current_task.get(), &Task::stepProgress, this, &AutoInstallJava::propagateStepProgress); connect(m_current_task.get(), &Task::status, this, &AutoInstallJava::setStatus); connect(m_current_task.get(), &Task::details, this, &AutoInstallJava::setDetails); + if (!m_current_task->isRunning()) { + m_current_task->start(); + } } } bool AutoInstallJava::abort() diff --git a/launcher/ui/java/VersionList.cpp b/launcher/ui/java/VersionList.cpp index 6f60a6867..f2c0cb3b9 100644 --- a/launcher/ui/java/VersionList.cpp +++ b/launcher/ui/java/VersionList.cpp @@ -35,8 +35,7 @@ VersionList::VersionList(Meta::Version::Ptr version, QObject* parent) : BaseVers Task::Ptr VersionList::getLoadTask() { - m_version->load(Net::Mode::Online); - auto task = m_version->getCurrentTask(); + auto task = m_version->loadTask(Net::Mode::Online); connect(task.get(), &Task::finished, this, &VersionList::sortVersions); return task; }