From 88a1e9f2ae9c5046f13122831c8cb2ff56572863 Mon Sep 17 00:00:00 2001 From: Ottermandias Date: Tue, 16 Nov 2021 16:05:58 +0100 Subject: [PATCH] Add settings cleanup to Auto-Generate Groups. --- Penumbra/Mod/ModCleanup.cs | 4 ++++ Penumbra/Mods/ModCollection.cs | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Penumbra/Mod/ModCleanup.cs b/Penumbra/Mod/ModCleanup.cs index 0026fd99..dc3e1510 100644 --- a/Penumbra/Mod/ModCleanup.cs +++ b/Penumbra/Mod/ModCleanup.cs @@ -519,6 +519,10 @@ namespace Penumbra.Mod meta.Groups.Add( groupDir.Name, @group ); } } + + foreach(var collection in Service.Get().Collections.Collections.Values) + collection.UpdateSetting(baseDir, meta, true); + } } } \ No newline at end of file diff --git a/Penumbra/Mods/ModCollection.cs b/Penumbra/Mods/ModCollection.cs index 8b23612d..feae0857 100644 --- a/Penumbra/Mods/ModCollection.cs +++ b/Penumbra/Mods/ModCollection.cs @@ -96,19 +96,24 @@ namespace Penumbra.Mods public void ClearCache() => Cache = null; - public void UpdateSetting( ModData mod ) + public void UpdateSetting( DirectoryInfo modPath, ModMeta meta, bool clear ) { - if( !Settings.TryGetValue( mod.BasePath.Name, out var settings ) ) + if( !Settings.TryGetValue( modPath.Name, out var settings ) ) { return; } - if( settings.FixInvalidSettings( mod.Meta ) ) + if (clear) + settings.Settings.Clear(); + if( settings.FixInvalidSettings( meta ) ) { Save(); } } + public void UpdateSetting( ModData mod ) + => UpdateSetting( mod.BasePath, mod.Meta, false ); + public void UpdateSettings( bool forceSave ) { if( Cache == null )