aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-07-18 12:40:25 -0300
committerGitHub <noreply@github.com>2022-07-18 12:40:25 -0300
commitdec81c4f274dd8388d442062cf9fa18600aa850d (patch)
tree11bf89a63035e4bf52b4d875a63cf5872da69bdc /launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
parent56085310cb066c7b3899684c3e3f39fe9fd311c4 (diff)
parent54b335711acac5e57e94bc9cb81c751c9b2872c5 (diff)
downloadPrismLauncher-dec81c4f274dd8388d442062cf9fa18600aa850d.tar.gz
PrismLauncher-dec81c4f274dd8388d442062cf9fa18600aa850d.tar.bz2
PrismLauncher-dec81c4f274dd8388d442062cf9fa18600aa850d.zip
Merge pull request #588 from flowln/mod_update
Implement mod updater (:sunglasses:)
Diffstat (limited to 'launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp')
-rw-r--r--launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
index 1bdecb8c..4b878918 100644
--- a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
+++ b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
@@ -44,10 +44,21 @@ void LocalModUpdateTask::executeTask()
{
setStatus(tr("Updating index for mod:\n%1").arg(m_mod.name));
- auto pw_mod = Metadata::create(m_index_dir, m_mod, m_mod_version);
- Metadata::update(m_index_dir, pw_mod);
+ auto old_metadata = Metadata::get(m_index_dir, m_mod.addonId);
+ if (old_metadata.isValid()) {
+ emit hasOldMod(old_metadata.name, old_metadata.filename);
+ if (m_mod.slug.isEmpty())
+ m_mod.slug = old_metadata.slug;
+ }
- emitSucceeded();
+ auto pw_mod = Metadata::create(m_index_dir, m_mod, m_mod_version);
+ if (pw_mod.isValid()) {
+ Metadata::update(m_index_dir, pw_mod);
+ emitSucceeded();
+ } else {
+ qCritical() << "Tried to update an invalid mod!";
+ emitFailed(tr("Invalid metadata"));
+ }
}
auto LocalModUpdateTask::abort() -> bool