aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-06-10 16:43:01 -0300
committerflow <flowlnlnln@gmail.com>2022-07-17 11:33:42 -0300
commitdfab55112b783d191ac9b596df9c2972b5fe74cb (patch)
treedd070aeab30785c65c06217aae5c7a105ce7a518 /launcher/minecraft/mod/tasks
parent1709b47bb7fd325c1b6dd482524fffa428b0f5a9 (diff)
downloadPrismLauncher-dfab55112b783d191ac9b596df9c2972b5fe74cb.tar.gz
PrismLauncher-dfab55112b783d191ac9b596df9c2972b5fe74cb.tar.bz2
PrismLauncher-dfab55112b783d191ac9b596df9c2972b5fe74cb.zip
feat: remove existing mod when updating/redownloading it
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/minecraft/mod/tasks')
-rw-r--r--launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp5
-rw-r--r--launcher/minecraft/mod/tasks/LocalModUpdateTask.h3
2 files changed, 8 insertions, 0 deletions
diff --git a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
index 1bdecb8c..c73e855e 100644
--- a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
+++ b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
@@ -44,6 +44,11 @@ void LocalModUpdateTask::executeTask()
{
setStatus(tr("Updating index for mod:\n%1").arg(m_mod.name));
+ auto old_metadata = Metadata::get(m_index_dir, m_mod.name);
+ if (old_metadata.isValid()) {
+ emit hasOldMod(old_metadata.name, old_metadata.filename);
+ }
+
auto pw_mod = Metadata::create(m_index_dir, m_mod, m_mod_version);
Metadata::update(m_index_dir, pw_mod);
diff --git a/launcher/minecraft/mod/tasks/LocalModUpdateTask.h b/launcher/minecraft/mod/tasks/LocalModUpdateTask.h
index 2db183e0..1d2f06a6 100644
--- a/launcher/minecraft/mod/tasks/LocalModUpdateTask.h
+++ b/launcher/minecraft/mod/tasks/LocalModUpdateTask.h
@@ -37,6 +37,9 @@ class LocalModUpdateTask : public Task {
//! Entry point for tasks.
void executeTask() override;
+ signals:
+ void hasOldMod(QString name, QString filename);
+
private:
QDir m_index_dir;
ModPlatform::IndexedPack& m_mod;