diff --git a/Penumbra/Models/Deduplicator.cs b/Penumbra/Models/Deduplicator.cs index cfebd60b..2059a976 100644 --- a/Penumbra/Models/Deduplicator.cs +++ b/Penumbra/Models/Deduplicator.cs @@ -99,6 +99,7 @@ namespace Penumbra.Models inOption = true; foreach (var value in values) option.AddFile(relName1, value); + option.OptionFiles.Remove(relName2); } } } diff --git a/Penumbra/Mods/ModManager.cs b/Penumbra/Mods/ModManager.cs index 8705aef1..5a9ba0fb 100644 --- a/Penumbra/Mods/ModManager.cs +++ b/Penumbra/Mods/ModManager.cs @@ -179,7 +179,7 @@ namespace Penumbra.Mods } } } - break; + break; case SelectType.Multi: for(var i = 0; i < group.Options.Count; ++i) { diff --git a/Penumbra/Mods/ResourceMod.cs b/Penumbra/Mods/ResourceMod.cs index a167ee51..3689fe40 100644 --- a/Penumbra/Mods/ResourceMod.cs +++ b/Penumbra/Mods/ResourceMod.cs @@ -22,7 +22,8 @@ namespace Penumbra.Mods PluginLog.LogError( "no basepath has been set on {ResourceModName}", Meta.Name ); return; } - + + ModFiles.Clear(); // we don't care about any _files_ in the root dir, but any folders should be a game folder/file combo foreach( var dir in ModBasePath.EnumerateDirectories() ) { diff --git a/Penumbra/UI/TabInstalledModPanel.cs b/Penumbra/UI/TabInstalledModPanel.cs index 253274ab..da38d5c8 100644 --- a/Penumbra/UI/TabInstalledModPanel.cs +++ b/Penumbra/UI/TabInstalledModPanel.cs @@ -227,7 +227,9 @@ namespace Penumbra.UI if( ImGui.Button( ButtonDeduplicate ) ) { new Deduplicator(Mod.Mod.ModBasePath, Meta).Run(); - _selector.SaveCurrentMod(); + _selector.SaveCurrentMod(); + Mod.Mod.RefreshModFiles(); + _base._plugin.ModManager.CalculateEffectiveFileList(); _base._menu._effectiveTab.RebuildFileList(_base._plugin.Configuration.ShowAdvanced); } if( ImGui.IsItemHovered() )