diff options
author | flow <flowlnlnln@gmail.com> | 2022-07-18 12:40:25 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-18 12:40:25 -0300 |
commit | dec81c4f274dd8388d442062cf9fa18600aa850d (patch) | |
tree | 11bf89a63035e4bf52b4d875a63cf5872da69bdc /launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp | |
parent | 56085310cb066c7b3899684c3e3f39fe9fd311c4 (diff) | |
parent | 54b335711acac5e57e94bc9cb81c751c9b2872c5 (diff) | |
download | PrismLauncher-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.cpp | 17 |
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 |