fix: correctly handle disabled mods with metadata

im stupid
This commit is contained in:
flow 2022-06-07 22:32:13 -03:00
parent 40ccd1a469
commit 9f1f37e780
No known key found for this signature in database
GPG Key ID: 8D0F221F0A59F469

View File

@ -53,12 +53,31 @@ void ModFolderLoadTask::run()
m_mods_dir.refresh(); m_mods_dir.refresh();
for (auto entry : m_mods_dir.entryInfoList()) { for (auto entry : m_mods_dir.entryInfoList()) {
Mod mod(entry); Mod mod(entry);
if(m_result->mods.contains(mod.internal_id())){
m_result->mods[mod.internal_id()].setStatus(ModStatus::Installed); if (mod.enabled()) {
if (m_result->mods.contains(mod.internal_id())) {
m_result->mods[mod.internal_id()].setStatus(ModStatus::Installed);
}
else {
m_result->mods[mod.internal_id()] = mod;
m_result->mods[mod.internal_id()].setStatus(ModStatus::NoMetadata);
}
} }
else { else {
m_result->mods[mod.internal_id()] = mod; QString chopped_id = mod.internal_id().chopped(9);
m_result->mods[mod.internal_id()].setStatus(ModStatus::NoMetadata); if (m_result->mods.contains(chopped_id)) {
m_result->mods[mod.internal_id()] = mod;
auto metadata = m_result->mods[chopped_id].metadata();
mod.setMetadata(new Metadata::ModStruct(*metadata));
m_result->mods[mod.internal_id()].setStatus(ModStatus::Installed);
m_result->mods.remove(chopped_id);
}
else {
m_result->mods[mod.internal_id()] = mod;
m_result->mods[mod.internal_id()].setStatus(ModStatus::NoMetadata);
}
} }
} }