aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-07-31 21:56:37 -0300
committerflow <flowlnlnln@gmail.com>2022-08-02 16:15:39 -0300
commit31ba1de53b2308cdaabda2fa94a7c1a259a8a078 (patch)
treecc1450ef5ad59cf5925a58b950b528e6fc8c187a
parentb15544c163ccbca08ea498b3b3a51c82d7fb3e12 (diff)
downloadPrismLauncher-31ba1de53b2308cdaabda2fa94a7c1a259a8a078.tar.gz
PrismLauncher-31ba1de53b2308cdaabda2fa94a7c1a259a8a078.tar.bz2
PrismLauncher-31ba1de53b2308cdaabda2fa94a7c1a259a8a078.zip
fix: remove orphaned metadata to avoid problems with auto-updating insts
Just as my master has taught me. :gun: Signed-off-by: flow <flowlnlnln@gmail.com>
-rw-r--r--launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp b/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
index a2e055ba..9b70e7a1 100644
--- a/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
+++ b/launcher/minecraft/mod/tasks/ModFolderLoadTask.cpp
@@ -83,6 +83,17 @@ void ModFolderLoadTask::run()
}
}
+ // Remove orphan metadata to prevent issues
+ // See https://github.com/PolyMC/PolyMC/issues/996
+ QMutableMapIterator<QString, Mod::Ptr> iter(m_result->mods);
+ while (iter.hasNext()) {
+ auto mod = iter.next().value();
+ if (mod->status() == ModStatus::NotInstalled) {
+ mod->destroy(m_index_dir, false);
+ iter.remove();
+ }
+ }
+
emit succeeded();
}