summaryrefslogtreecommitdiffstats
path: root/api/logic/minecraft/onesix/update/LibrariesTask.cpp
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2017-07-24 09:01:37 +0200
committerPetr Mrázek <peterix@gmail.com>2017-09-09 19:19:05 +0200
commit13628e7a8260b9407b0d44069f5bc1ecab585f35 (patch)
tree162a0d8b597154c1a00c649d44b3bf8fd1e10d2b /api/logic/minecraft/onesix/update/LibrariesTask.cpp
parentb29382c748353856053f07b4756fa98f854244e1 (diff)
downloadMultiMC-13628e7a8260b9407b0d44069f5bc1ecab585f35.tar
MultiMC-13628e7a8260b9407b0d44069f5bc1ecab585f35.tar.gz
MultiMC-13628e7a8260b9407b0d44069f5bc1ecab585f35.tar.lz
MultiMC-13628e7a8260b9407b0d44069f5bc1ecab585f35.tar.xz
MultiMC-13628e7a8260b9407b0d44069f5bc1ecab585f35.zip
NOISSUE merging of strategy into profile, onesix into minecraft
Diffstat (limited to 'api/logic/minecraft/onesix/update/LibrariesTask.cpp')
-rw-r--r--api/logic/minecraft/onesix/update/LibrariesTask.cpp94
1 files changed, 0 insertions, 94 deletions
diff --git a/api/logic/minecraft/onesix/update/LibrariesTask.cpp b/api/logic/minecraft/onesix/update/LibrariesTask.cpp
deleted file mode 100644
index 2cd41ded..00000000
--- a/api/logic/minecraft/onesix/update/LibrariesTask.cpp
+++ /dev/null
@@ -1,94 +0,0 @@
-#include "Env.h"
-#include "LibrariesTask.h"
-#include "minecraft/onesix/OneSixInstance.h"
-
-LibrariesTask::LibrariesTask(OneSixInstance * inst)
-{
- m_inst = inst;
-}
-
-void LibrariesTask::executeTask()
-{
- setStatus(tr("Getting the library files from Mojang..."));
- qDebug() << m_inst->name() << ": downloading libraries";
- OneSixInstance *inst = (OneSixInstance *)m_inst;
- inst->reloadProfile();
- if(inst->hasVersionBroken())
- {
- emitFailed(tr("Failed to load the version description files - check the instance for errors."));
- return;
- }
-
- // Build a list of URLs that will need to be downloaded.
- std::shared_ptr<MinecraftProfile> profile = inst->getMinecraftProfile();
-
- auto job = new NetJob(tr("Libraries for instance %1").arg(inst->name()));
- downloadJob.reset(job);
-
- auto metacache = ENV.metacache();
- QList<LibraryPtr> brokenLocalLibs;
- QStringList failedFiles;
- auto createJob = [&](const LibraryPtr & lib)
- {
- if(!lib)
- {
- emitFailed(tr("Null jar is specified in the metadata, aborting."));
- return;
- }
- auto dls = lib->getDownloads(currentSystem, metacache.get(), failedFiles, inst->getLocalLibraryPath());
- for(auto dl : dls)
- {
- downloadJob->addNetAction(dl);
- }
- };
- auto createJobs = [&](const QList<LibraryPtr> & libs)
- {
- for (auto lib : libs)
- {
- createJob(lib);
- }
- };
- createJobs(profile->getLibraries());
- createJobs(profile->getNativeLibraries());
- createJobs(profile->getJarMods());
- createJob(profile->getMainJar());
-
- // FIXME: this is never filled!!!!
- if (!brokenLocalLibs.empty())
- {
- downloadJob.reset();
- QString failed_all = failedFiles.join("\n");
- emitFailed(tr("Some libraries marked as 'local' are missing their jar "
- "files:\n%1\n\nYou'll have to correct this problem manually. If this is "
- "an externally tracked instance, make sure to run it at least once "
- "outside of MultiMC.").arg(failed_all));
- return;
- }
- connect(downloadJob.get(), &NetJob::succeeded, this, &LibrariesTask::emitSucceeded);
- connect(downloadJob.get(), &NetJob::failed, this, &LibrariesTask::jarlibFailed);
- connect(downloadJob.get(), &NetJob::progress, this, &LibrariesTask::progress);
- downloadJob->start();
-}
-
-bool LibrariesTask::canAbort() const
-{
- return true;
-}
-
-void LibrariesTask::jarlibFailed(QString reason)
-{
- emitFailed(tr("Game update failed: it was impossible to fetch the required libraries.\nReason:\n%1").arg(reason));
-}
-
-bool LibrariesTask::abort()
-{
- if(downloadJob)
- {
- return downloadJob->abort();
- }
- else
- {
- qWarning() << "Prematurely aborted LibrariesTask";
- }
- return true;
-}