diff --git a/logic/LegacyUpdate.cpp b/logic/LegacyUpdate.cpp index fa3fd240..60dde3e8 100644 --- a/logic/LegacyUpdate.cpp +++ b/logic/LegacyUpdate.cpp @@ -261,16 +261,20 @@ void LegacyUpdate::jarStart() // Build a list of URLs that will need to be downloaded. setStatus("Downloading new minecraft.jar"); - QString urlstr("http://s3.amazonaws.com/Minecraft.Download/versions/"); - QString intended_version_id = inst->intendedVersionId(); - urlstr += intended_version_id + "/" + intended_version_id + ".jar"; + QString version_id = inst->intendedVersionId(); + QString localPath = version_id + "/" + version_id + ".jar"; + QString urlstr = "http://s3.amazonaws.com/Minecraft.Download/versions/" + localPath; - auto dljob = new NetJob("Minecraft.jar for version " + intended_version_id); - dljob->addNetAction(MD5EtagDownload::make(QUrl(urlstr), inst->defaultBaseJar())); - legacyDownloadJob.reset(dljob); + auto dljob = new NetJob("Minecraft.jar for version " + version_id); + + + auto metacache = MMC->metacache(); + auto entry = metacache->resolveEntry("versions", localPath); + dljob->addNetAction(CacheDownload::make(QUrl(urlstr), entry)); connect(dljob, SIGNAL(succeeded()), SLOT(jarFinished())); connect(dljob, SIGNAL(failed()), SLOT(jarFailed())); connect(dljob, SIGNAL(progress(qint64, qint64)), SIGNAL(progress(qint64, qint64))); + legacyDownloadJob.reset(dljob); legacyDownloadJob->start(); } @@ -482,4 +486,4 @@ void LegacyUpdate::ModTheJar() // inst->UpdateVersion(true); emitSucceeded(); return; -} \ No newline at end of file +} diff --git a/logic/OneSixUpdate.cpp b/logic/OneSixUpdate.cpp index feaba6a5..44314e1e 100644 --- a/logic/OneSixUpdate.cpp +++ b/logic/OneSixUpdate.cpp @@ -290,17 +290,22 @@ void OneSixUpdate::jarlibStart() return; } + // Build a list of URLs that will need to be downloaded. std::shared_ptr version = inst->getFullVersion(); + // minecraft.jar for this version + { + QString version_id = version->id; + QString localPath = version_id + "/" + version_id + ".jar"; + QString urlstr = "http://s3.amazonaws.com/Minecraft.Download/versions/" + localPath; - // download the right jar, save it in versions/$version/$version.jar - QString urlstr("http://s3.amazonaws.com/Minecraft.Download/versions/"); - urlstr += version->id + "/" + version->id + ".jar"; - QString targetstr("versions/"); - targetstr += version->id + "/" + version->id + ".jar"; + auto job = new NetJob("Libraries for instance " + inst->name()); - auto job = new NetJob("Libraries for instance " + inst->name()); - job->addNetAction(MD5EtagDownload::make(QUrl(urlstr), targetstr)); - jarlibDownloadJob.reset(job); + auto metacache = MMC->metacache(); + auto entry = metacache->resolveEntry("versions", localPath); + job->addNetAction(CacheDownload::make(QUrl(urlstr), entry)); + + jarlibDownloadJob.reset(job); + } auto libs = version->getActiveNativeLibs(); libs.append(version->getActiveNormalLibs());