Use metacache for minecraft.jar downloads
This commit is contained in:
		@@ -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();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -290,17 +290,22 @@ void OneSixUpdate::jarlibStart()
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Build a list of URLs that will need to be downloaded.
 | 
			
		||||
	std::shared_ptr<OneSixVersion> version = inst->getFullVersion();
 | 
			
		||||
 | 
			
		||||
	// 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";
 | 
			
		||||
	// 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;
 | 
			
		||||
 | 
			
		||||
		auto job = new NetJob("Libraries for instance " + inst->name());
 | 
			
		||||
	job->addNetAction(MD5EtagDownload::make(QUrl(urlstr), targetstr));
 | 
			
		||||
 | 
			
		||||
		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());
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user