aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/minecraft')
-rw-r--r--launcher/minecraft/mod/MetadataHandler.h10
-rw-r--r--launcher/minecraft/mod/Mod.cpp8
-rw-r--r--launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp2
3 files changed, 13 insertions, 7 deletions
diff --git a/launcher/minecraft/mod/MetadataHandler.h b/launcher/minecraft/mod/MetadataHandler.h
index 56962818..d5f01c42 100644
--- a/launcher/minecraft/mod/MetadataHandler.h
+++ b/launcher/minecraft/mod/MetadataHandler.h
@@ -52,8 +52,18 @@ class Metadata {
Packwiz::V1::deleteModIndex(index_dir, mod_name);
}
+ static void remove(QDir& index_dir, QVariant& mod_id)
+ {
+ Packwiz::V1::deleteModIndex(index_dir, mod_id);
+ }
+
static auto get(QDir& index_dir, QString& mod_name) -> ModStruct
{
return Packwiz::V1::getIndexForMod(index_dir, mod_name);
}
+
+ static auto get(QDir& index_dir, QVariant& mod_id) -> ModStruct
+ {
+ return Packwiz::V1::getIndexForMod(index_dir, mod_id);
+ }
};
diff --git a/launcher/minecraft/mod/Mod.cpp b/launcher/minecraft/mod/Mod.cpp
index 81bb902f..bba7b342 100644
--- a/launcher/minecraft/mod/Mod.cpp
+++ b/launcher/minecraft/mod/Mod.cpp
@@ -164,12 +164,8 @@ void Mod::setMetadata(Metadata::ModStruct* metadata)
auto Mod::destroy(QDir& index_dir, bool preserve_metadata) -> bool
{
- auto n = name();
- // FIXME: This can fail to remove the metadata if the
- // "ModMetadataDisabled" setting is on, since there could
- // be a name mismatch!
- if(!preserve_metadata)
- Metadata::remove(index_dir, n);
+ if (!preserve_metadata && status() != ModStatus::NoMetadata)
+ Metadata::remove(index_dir, metadata()->mod_id());
m_type = MOD_UNKNOWN;
return FS::deletePath(m_file.filePath());
diff --git a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
index c73e855e..f0ef795d 100644
--- a/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
+++ b/launcher/minecraft/mod/tasks/LocalModUpdateTask.cpp
@@ -44,7 +44,7 @@ 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);
+ auto old_metadata = Metadata::get(m_index_dir, m_mod.addonId);
if (old_metadata.isValid()) {
emit hasOldMod(old_metadata.name, old_metadata.filename);
}