aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/update
diff options
context:
space:
mode:
authorTayou <31988415+TayouVR@users.noreply.github.com>2023-08-07 10:32:38 +0200
committerGitHub <noreply@github.com>2023-08-07 10:32:38 +0200
commit9afa7cc91fd889b146c609c6a59f7f7b3d995d9f (patch)
tree20ef3bd30beedca4995875485e468ee323d52096 /launcher/minecraft/update
parentb572f75dbaad61cf305f1fd4f60ba94d74bfa3fa (diff)
parent75c7df46a7022a46d447bb96fbde619e5d65db05 (diff)
downloadPrismLauncher-9afa7cc91fd889b146c609c6a59f7f7b3d995d9f.tar.gz
PrismLauncher-9afa7cc91fd889b146c609c6a59f7f7b3d995d9f.tar.bz2
PrismLauncher-9afa7cc91fd889b146c609c6a59f7f7b3d995d9f.zip
Merge branch 'develop' into icon-indexing
Signed-off-by: Tayou <31988415+TayouVR@users.noreply.github.com>
Diffstat (limited to 'launcher/minecraft/update')
-rw-r--r--launcher/minecraft/update/AssetUpdateTask.cpp30
-rw-r--r--launcher/minecraft/update/AssetUpdateTask.h17
-rw-r--r--launcher/minecraft/update/FMLLibrariesTask.cpp53
-rw-r--r--launcher/minecraft/update/FMLLibrariesTask.h22
-rw-r--r--launcher/minecraft/update/FoldersTask.cpp10
-rw-r--r--launcher/minecraft/update/FoldersTask.h15
-rw-r--r--launcher/minecraft/update/LibrariesTask.cpp35
-rw-r--r--launcher/minecraft/update/LibrariesTask.h19
8 files changed, 82 insertions, 119 deletions
diff --git a/launcher/minecraft/update/AssetUpdateTask.cpp b/launcher/minecraft/update/AssetUpdateTask.cpp
index fda85ba8..7043d987 100644
--- a/launcher/minecraft/update/AssetUpdateTask.cpp
+++ b/launcher/minecraft/update/AssetUpdateTask.cpp
@@ -1,20 +1,18 @@
#include "AssetUpdateTask.h"
+#include "minecraft/AssetsUtils.h"
#include "minecraft/MinecraftInstance.h"
#include "minecraft/PackProfile.h"
#include "net/ChecksumValidator.h"
-#include "minecraft/AssetsUtils.h"
#include "Application.h"
-AssetUpdateTask::AssetUpdateTask(MinecraftInstance * inst)
+AssetUpdateTask::AssetUpdateTask(MinecraftInstance* inst)
{
m_inst = inst;
}
-AssetUpdateTask::~AssetUpdateTask()
-{
-}
+AssetUpdateTask::~AssetUpdateTask() {}
void AssetUpdateTask::executeTask()
{
@@ -24,10 +22,7 @@ void AssetUpdateTask::executeTask()
auto assets = profile->getMinecraftAssets();
QUrl indexUrl = assets->url;
QString localPath = assets->id + ".json";
- auto job = makeShared<NetJob>(
- tr("Asset index for %1").arg(m_inst->name()),
- APPLICATION->network()
- );
+ auto job = makeShared<NetJob>(tr("Asset index for %1").arg(m_inst->name()), APPLICATION->network());
auto metacache = APPLICATION->metacache();
auto entry = metacache->resolveEntry("asset_indexes", localPath);
@@ -43,7 +38,7 @@ void AssetUpdateTask::executeTask()
connect(downloadJob.get(), &NetJob::succeeded, this, &AssetUpdateTask::assetIndexFinished);
connect(downloadJob.get(), &NetJob::failed, this, &AssetUpdateTask::assetIndexFailed);
- connect(downloadJob.get(), &NetJob::aborted, this, [this]{ emitFailed(tr("Aborted")); });
+ connect(downloadJob.get(), &NetJob::aborted, this, [this] { emitFailed(tr("Aborted")); });
connect(downloadJob.get(), &NetJob::progress, this, &AssetUpdateTask::progress);
connect(downloadJob.get(), &NetJob::stepProgress, this, &AssetUpdateTask::propagateStepProgress);
@@ -67,8 +62,7 @@ void AssetUpdateTask::assetIndexFinished()
QString asset_fname = "assets/indexes/" + assets->id + ".json";
// FIXME: this looks like a job for a generic validator based on json schema?
- if (!AssetsUtils::loadAssetsIndexJson(assets->id, asset_fname, index))
- {
+ if (!AssetsUtils::loadAssetsIndexJson(assets->id, asset_fname, index)) {
auto metacache = APPLICATION->metacache();
auto entry = metacache->resolveEntry("asset_indexes", assets->id + ".json");
metacache->evictEntry(entry);
@@ -76,13 +70,12 @@ void AssetUpdateTask::assetIndexFinished()
}
auto job = index.getDownloadJob();
- if(job)
- {
+ if (job) {
setStatus(tr("Getting the assets files from Mojang..."));
downloadJob = job;
connect(downloadJob.get(), &NetJob::succeeded, this, &AssetUpdateTask::emitSucceeded);
connect(downloadJob.get(), &NetJob::failed, this, &AssetUpdateTask::assetsFailed);
- connect(downloadJob.get(), &NetJob::aborted, this, [this]{ emitFailed(tr("Aborted")); });
+ connect(downloadJob.get(), &NetJob::aborted, this, [this] { emitFailed(tr("Aborted")); });
connect(downloadJob.get(), &NetJob::progress, this, &AssetUpdateTask::progress);
connect(downloadJob.get(), &NetJob::stepProgress, this, &AssetUpdateTask::propagateStepProgress);
downloadJob->start();
@@ -104,12 +97,9 @@ void AssetUpdateTask::assetsFailed(QString reason)
bool AssetUpdateTask::abort()
{
- if(downloadJob)
- {
+ if (downloadJob) {
return downloadJob->abort();
- }
- else
- {
+ } else {
qWarning() << "Prematurely aborted AssetUpdateTask";
}
return true;
diff --git a/launcher/minecraft/update/AssetUpdateTask.h b/launcher/minecraft/update/AssetUpdateTask.h
index 6d7356f3..6f053a54 100644
--- a/launcher/minecraft/update/AssetUpdateTask.h
+++ b/launcher/minecraft/update/AssetUpdateTask.h
@@ -1,28 +1,27 @@
#pragma once
-#include "tasks/Task.h"
#include "net/NetJob.h"
+#include "tasks/Task.h"
class MinecraftInstance;
-class AssetUpdateTask : public Task
-{
+class AssetUpdateTask : public Task {
Q_OBJECT
-public:
- AssetUpdateTask(MinecraftInstance * inst);
+ public:
+ AssetUpdateTask(MinecraftInstance* inst);
virtual ~AssetUpdateTask();
void executeTask() override;
bool canAbort() const override;
-private slots:
+ private slots:
void assetIndexFinished();
void assetIndexFailed(QString reason);
void assetsFailed(QString reason);
-public slots:
+ public slots:
bool abort() override;
-private:
- MinecraftInstance *m_inst;
+ private:
+ MinecraftInstance* m_inst;
NetJob::Ptr downloadJob;
};
diff --git a/launcher/minecraft/update/FMLLibrariesTask.cpp b/launcher/minecraft/update/FMLLibrariesTask.cpp
index d9fa0595..a6ca2102 100644
--- a/launcher/minecraft/update/FMLLibrariesTask.cpp
+++ b/launcher/minecraft/update/FMLLibrariesTask.cpp
@@ -1,51 +1,47 @@
#include "FMLLibrariesTask.h"
#include "FileSystem.h"
-#include "minecraft/VersionFilterData.h"
#include "minecraft/MinecraftInstance.h"
#include "minecraft/PackProfile.h"
+#include "minecraft/VersionFilterData.h"
-#include "BuildConfig.h"
#include "Application.h"
+#include "BuildConfig.h"
-FMLLibrariesTask::FMLLibrariesTask(MinecraftInstance * inst)
+FMLLibrariesTask::FMLLibrariesTask(MinecraftInstance* inst)
{
m_inst = inst;
}
void FMLLibrariesTask::executeTask()
{
// Get the mod list
- MinecraftInstance *inst = (MinecraftInstance *)m_inst;
+ MinecraftInstance* inst = (MinecraftInstance*)m_inst;
auto components = inst->getPackProfile();
auto profile = components->getProfile();
- if (!profile->hasTrait("legacyFML"))
- {
+ if (!profile->hasTrait("legacyFML")) {
emitSucceeded();
return;
}
QString version = components->getComponentVersion("net.minecraft");
- auto &fmlLibsMapping = g_VersionFilterData.fmlLibsMapping;
- if (!fmlLibsMapping.contains(version))
- {
+ auto& fmlLibsMapping = g_VersionFilterData.fmlLibsMapping;
+ if (!fmlLibsMapping.contains(version)) {
emitSucceeded();
return;
}
- auto &libList = fmlLibsMapping[version];
+ auto& libList = fmlLibsMapping[version];
// determine if we need some libs for FML or forge
setStatus(tr("Checking for FML libraries..."));
- if(!components->getComponent("net.minecraftforge"))
- {
+ if (!components->getComponent("net.minecraftforge")) {
emitSucceeded();
return;
}
// now check the lib folder inside the instance for files.
- for (auto &lib : libList)
- {
+ for (auto& lib : libList) {
QFileInfo libInfo(FS::PathCombine(inst->libDir(), lib.filename));
if (libInfo.exists())
continue;
@@ -53,8 +49,7 @@ void FMLLibrariesTask::executeTask()
}
// if everything is in place, there's nothing to do here...
- if (fmlLibsToProcess.isEmpty())
- {
+ if (fmlLibsToProcess.isEmpty()) {
emitSucceeded();
return;
}
@@ -64,8 +59,7 @@ void FMLLibrariesTask::executeTask()
NetJob::Ptr dljob{ new NetJob("FML libraries", APPLICATION->network()) };
auto metacache = APPLICATION->metacache();
Net::Download::Options options = Net::Download::Option::MakeEternal;
- for (auto &lib : fmlLibsToProcess)
- {
+ for (auto& lib : fmlLibsToProcess) {
auto entry = metacache->resolveEntry("fmllibs", lib.filename);
QString urlString = BuildConfig.FMLLIBS_BASE_URL + lib.filename;
dljob->addNetAction(Net::Download::makeCached(QUrl(urlString), entry, options));
@@ -73,7 +67,7 @@ void FMLLibrariesTask::executeTask()
connect(dljob.get(), &NetJob::succeeded, this, &FMLLibrariesTask::fmllibsFinished);
connect(dljob.get(), &NetJob::failed, this, &FMLLibrariesTask::fmllibsFailed);
- connect(dljob.get(), &NetJob::aborted, this, [this]{ emitFailed(tr("Aborted")); });
+ connect(dljob.get(), &NetJob::aborted, this, [this] { emitFailed(tr("Aborted")); });
connect(dljob.get(), &NetJob::progress, this, &FMLLibrariesTask::progress);
connect(dljob.get(), &NetJob::stepProgress, this, &FMLLibrariesTask::propagateStepProgress);
downloadJob.reset(dljob);
@@ -88,24 +82,20 @@ bool FMLLibrariesTask::canAbort() const
void FMLLibrariesTask::fmllibsFinished()
{
downloadJob.reset();
- if (!fmlLibsToProcess.isEmpty())
- {
+ if (!fmlLibsToProcess.isEmpty()) {
setStatus(tr("Copying FML libraries into the instance..."));
- MinecraftInstance *inst = (MinecraftInstance *)m_inst;
+ MinecraftInstance* inst = (MinecraftInstance*)m_inst;
auto metacache = APPLICATION->metacache();
int index = 0;
- for (auto &lib : fmlLibsToProcess)
- {
+ for (auto& lib : fmlLibsToProcess) {
progress(index, fmlLibsToProcess.size());
auto entry = metacache->resolveEntry("fmllibs", lib.filename);
auto path = FS::PathCombine(inst->libDir(), lib.filename);
- if (!FS::ensureFilePathExists(path))
- {
+ if (!FS::ensureFilePathExists(path)) {
emitFailed(tr("Failed creating FML library folder inside the instance."));
return;
}
- if (!QFile::copy(entry->getFullPath(), FS::PathCombine(inst->libDir(), lib.filename)))
- {
+ if (!QFile::copy(entry->getFullPath(), FS::PathCombine(inst->libDir(), lib.filename))) {
emitFailed(tr("Failed copying Forge/FML library: %1.").arg(lib.filename));
return;
}
@@ -124,12 +114,9 @@ void FMLLibrariesTask::fmllibsFailed(QString reason)
bool FMLLibrariesTask::abort()
{
- if(downloadJob)
- {
+ if (downloadJob) {
return downloadJob->abort();
- }
- else
- {
+ } else {
qWarning() << "Prematurely aborted FMLLibrariesTask";
}
return true;
diff --git a/launcher/minecraft/update/FMLLibrariesTask.h b/launcher/minecraft/update/FMLLibrariesTask.h
index 2e5ad83a..9d0102be 100644
--- a/launcher/minecraft/update/FMLLibrariesTask.h
+++ b/launcher/minecraft/update/FMLLibrariesTask.h
@@ -1,31 +1,29 @@
#pragma once
-#include "tasks/Task.h"
-#include "net/NetJob.h"
#include "minecraft/VersionFilterData.h"
+#include "net/NetJob.h"
+#include "tasks/Task.h"
class MinecraftInstance;
-class FMLLibrariesTask : public Task
-{
+class FMLLibrariesTask : public Task {
Q_OBJECT
-public:
- FMLLibrariesTask(MinecraftInstance * inst);
- virtual ~FMLLibrariesTask() {};
+ public:
+ FMLLibrariesTask(MinecraftInstance* inst);
+ virtual ~FMLLibrariesTask(){};
void executeTask() override;
bool canAbort() const override;
-private slots:
+ private slots:
void fmllibsFinished();
void fmllibsFailed(QString reason);
-public slots:
+ public slots:
bool abort() override;
-private:
- MinecraftInstance *m_inst;
+ private:
+ MinecraftInstance* m_inst;
NetJob::Ptr downloadJob;
QList<FMLlib> fmlLibsToProcess;
};
-
diff --git a/launcher/minecraft/update/FoldersTask.cpp b/launcher/minecraft/update/FoldersTask.cpp
index b9ee9d98..c74e8d2e 100644
--- a/launcher/minecraft/update/FoldersTask.cpp
+++ b/launcher/minecraft/update/FoldersTask.cpp
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
- * PolyMC - Minecraft Launcher
+ * Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@@ -34,11 +34,10 @@
*/
#include "FoldersTask.h"
-#include "minecraft/MinecraftInstance.h"
#include <QDir>
+#include "minecraft/MinecraftInstance.h"
-FoldersTask::FoldersTask(MinecraftInstance * inst)
- :Task()
+FoldersTask::FoldersTask(MinecraftInstance* inst) : Task()
{
m_inst = inst;
}
@@ -47,8 +46,7 @@ void FoldersTask::executeTask()
{
// Make directories
QDir mcDir(m_inst->gameRoot());
- if (!mcDir.exists() && !mcDir.mkpath("."))
- {
+ if (!mcDir.exists() && !mcDir.mkpath(".")) {
emitFailed(tr("Failed to create folder for Minecraft binaries."));
return;
}
diff --git a/launcher/minecraft/update/FoldersTask.h b/launcher/minecraft/update/FoldersTask.h
index f6ed5e6d..2d2954b2 100644
--- a/launcher/minecraft/update/FoldersTask.h
+++ b/launcher/minecraft/update/FoldersTask.h
@@ -3,15 +3,14 @@
#include "tasks/Task.h"
class MinecraftInstance;
-class FoldersTask : public Task
-{
+class FoldersTask : public Task {
Q_OBJECT
-public:
- FoldersTask(MinecraftInstance * inst);
- virtual ~FoldersTask() {};
+ public:
+ FoldersTask(MinecraftInstance* inst);
+ virtual ~FoldersTask(){};
void executeTask() override;
-private:
- MinecraftInstance *m_inst;
-};
+ private:
+ MinecraftInstance* m_inst;
+};
diff --git a/launcher/minecraft/update/LibrariesTask.cpp b/launcher/minecraft/update/LibrariesTask.cpp
index 9d1c0295..1581b32e 100644
--- a/launcher/minecraft/update/LibrariesTask.cpp
+++ b/launcher/minecraft/update/LibrariesTask.cpp
@@ -5,7 +5,7 @@
#include "Application.h"
-LibrariesTask::LibrariesTask(MinecraftInstance * inst)
+LibrariesTask::LibrariesTask(MinecraftInstance* inst)
{
m_inst = inst;
}
@@ -14,7 +14,7 @@ void LibrariesTask::executeTask()
{
setStatus(tr("Downloading required library files..."));
qDebug() << m_inst->name() << ": downloading libraries";
- MinecraftInstance *inst = (MinecraftInstance *)m_inst;
+ MinecraftInstance* inst = (MinecraftInstance*)m_inst;
// Build a list of URLs that will need to be downloaded.
auto components = inst->getPackProfile();
@@ -25,18 +25,14 @@ void LibrariesTask::executeTask()
auto metacache = APPLICATION->metacache();
- auto processArtifactPool = [&](const QList<LibraryPtr> & pool, QStringList & errors, const QString & localPath)
- {
- for (auto lib : pool)
- {
- if(!lib)
- {
+ auto processArtifactPool = [&](const QList<LibraryPtr>& pool, QStringList& errors, const QString& localPath) {
+ for (auto lib : pool) {
+ if (!lib) {
emitFailed(tr("Null jar is specified in the metadata, aborting."));
return false;
}
auto dls = lib->getDownloads(inst->runtimeContext(), metacache.get(), errors, localPath);
- for(auto dl : dls)
- {
+ for (auto dl : dls) {
downloadJob->addNetAction(dl);
}
}
@@ -48,8 +44,7 @@ void LibrariesTask::executeTask()
libArtifactPool.append(profile->getLibraries());
libArtifactPool.append(profile->getNativeLibraries());
libArtifactPool.append(profile->getMavenFiles());
- for (auto agent : profile->getAgents())
- {
+ for (auto agent : profile->getAgents()) {
libArtifactPool.append(agent->library());
}
libArtifactPool.append(profile->getMainJar());
@@ -58,17 +53,18 @@ void LibrariesTask::executeTask()
QStringList failedLocalJarMods;
processArtifactPool(profile->getJarMods(), failedLocalJarMods, inst->jarModsDir());
- if (!failedLocalJarMods.empty() || !failedLocalLibraries.empty())
- {
+ if (!failedLocalJarMods.empty() || !failedLocalLibraries.empty()) {
downloadJob.reset();
QString failed_all = (failedLocalLibraries + failedLocalJarMods).join("\n");
- emitFailed(tr("Some artifacts marked as 'local' are missing their files:\n%1\n\nYou need to either add the files, or removed the packages that require them.\nYou'll have to correct this problem manually.").arg(failed_all));
+ emitFailed(tr("Some artifacts marked as 'local' are missing their files:\n%1\n\nYou need to either add the files, or removed the "
+ "packages that require them.\nYou'll have to correct this problem manually.")
+ .arg(failed_all));
return;
}
connect(downloadJob.get(), &NetJob::succeeded, this, &LibrariesTask::emitSucceeded);
connect(downloadJob.get(), &NetJob::failed, this, &LibrariesTask::jarlibFailed);
- connect(downloadJob.get(), &NetJob::aborted, this, [this]{ emitFailed(tr("Aborted")); });
+ connect(downloadJob.get(), &NetJob::aborted, this, [this] { emitFailed(tr("Aborted")); });
connect(downloadJob.get(), &NetJob::progress, this, &LibrariesTask::progress);
connect(downloadJob.get(), &NetJob::stepProgress, this, &LibrariesTask::propagateStepProgress);
@@ -87,12 +83,9 @@ void LibrariesTask::jarlibFailed(QString reason)
bool LibrariesTask::abort()
{
- if(downloadJob)
- {
+ if (downloadJob) {
return downloadJob->abort();
- }
- else
- {
+ } else {
qWarning() << "Prematurely aborted LibrariesTask";
}
return true;
diff --git a/launcher/minecraft/update/LibrariesTask.h b/launcher/minecraft/update/LibrariesTask.h
index b966ad6c..c969e74d 100644
--- a/launcher/minecraft/update/LibrariesTask.h
+++ b/launcher/minecraft/update/LibrariesTask.h
@@ -1,26 +1,25 @@
#pragma once
-#include "tasks/Task.h"
#include "net/NetJob.h"
+#include "tasks/Task.h"
class MinecraftInstance;
-class LibrariesTask : public Task
-{
+class LibrariesTask : public Task {
Q_OBJECT
-public:
- LibrariesTask(MinecraftInstance * inst);
- virtual ~LibrariesTask() {};
+ public:
+ LibrariesTask(MinecraftInstance* inst);
+ virtual ~LibrariesTask(){};
void executeTask() override;
bool canAbort() const override;
-private slots:
+ private slots:
void jarlibFailed(QString reason);
-public slots:
+ public slots:
bool abort() override;
-private:
- MinecraftInstance *m_inst;
+ private:
+ MinecraftInstance* m_inst;
NetJob::Ptr downloadJob;
};