aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp')
-rw-r--r--launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
index f0ef795d..4b878918 100644
--- a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
+++ b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
@@ -47,12 +47,18 @@ void LocalModUpdateTask::executeTask()
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;
}
auto pw_mod = Metadata::create(m_index_dir, m_mod, m_mod_version);
- Metadata::update(m_index_dir, pw_mod);
-
- emitSucceeded();
+ 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