diff --git a/Dalamud/Configuration/Internal/DalamudConfiguration.cs b/Dalamud/Configuration/Internal/DalamudConfiguration.cs index 3bc30fad0..168382fab 100644 --- a/Dalamud/Configuration/Internal/DalamudConfiguration.cs +++ b/Dalamud/Configuration/Internal/DalamudConfiguration.cs @@ -498,6 +498,11 @@ internal sealed class DalamudConfiguration : IInternalDisposableService /// public bool SendUpdateNotificationToChat { get; set; } = false; + /// + /// Gets or sets a value indicating whether disabled plugins should be auto-updated. + /// + public bool UpdateDisabledPlugins { get; set; } = false; + /// /// Gets or sets a value indicating where notifications are anchored to on the screen. /// diff --git a/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabAutoUpdate.cs b/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabAutoUpdate.cs index 9356131ad..3815c4425 100644 --- a/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabAutoUpdate.cs +++ b/Dalamud/Interface/Internal/Windows/Settings/Tabs/SettingsTabAutoUpdate.cs @@ -22,6 +22,7 @@ namespace Dalamud.Interface.Internal.Windows.Settings.Tabs; public class SettingsTabAutoUpdates : SettingsTab { private AutoUpdateBehavior behavior; + private bool updateDisabledPlugins; private bool checkPeriodically; private bool chatNotification; private string pickerSearch = string.Empty; @@ -66,6 +67,7 @@ public class SettingsTabAutoUpdates : SettingsTab ImGuiHelpers.ScaledDummy(8); + ImGui.Checkbox(Loc.Localize("DalamudSettingsAutoUpdateDisabledPlugins", "Auto-Update plugins that are currently disabled"), ref this.updateDisabledPlugins); ImGui.Checkbox(Loc.Localize("DalamudSettingsAutoUpdateChatMessage", "Show notification about updates available in chat"), ref this.chatNotification); ImGui.Checkbox(Loc.Localize("DalamudSettingsAutoUpdatePeriodically", "Periodically check for new updates while playing"), ref this.checkPeriodically); ImGuiHelpers.SafeTextColoredWrapped(ImGuiColors.DalamudGrey, Loc.Localize("DalamudSettingsAutoUpdatePeriodicallyHint", @@ -237,6 +239,7 @@ public class SettingsTabAutoUpdates : SettingsTab var configuration = Service.Get(); this.behavior = configuration.AutoUpdateBehavior ?? AutoUpdateBehavior.None; + this.updateDisabledPlugins = configuration.UpdateDisabledPlugins; this.chatNotification = configuration.SendUpdateNotificationToChat; this.checkPeriodically = configuration.CheckPeriodicallyForUpdates; this.autoUpdatePreferences = configuration.PluginAutoUpdatePreferences; @@ -249,6 +252,7 @@ public class SettingsTabAutoUpdates : SettingsTab var configuration = Service.Get(); configuration.AutoUpdateBehavior = this.behavior; + configuration.UpdateDisabledPlugins = this.updateDisabledPlugins; configuration.SendUpdateNotificationToChat = this.chatNotification; configuration.CheckPeriodicallyForUpdates = this.checkPeriodically; configuration.PluginAutoUpdatePreferences = this.autoUpdatePreferences; diff --git a/Dalamud/Plugin/Internal/AutoUpdate/AutoUpdateManager.cs b/Dalamud/Plugin/Internal/AutoUpdate/AutoUpdateManager.cs index adec4f73d..1a57790f8 100644 --- a/Dalamud/Plugin/Internal/AutoUpdate/AutoUpdateManager.cs +++ b/Dalamud/Plugin/Internal/AutoUpdate/AutoUpdateManager.cs @@ -460,7 +460,7 @@ internal class AutoUpdateManager : IServiceType .Where( p => !p.InstalledPlugin.IsDev && // Never update dev-plugins - p.InstalledPlugin.IsWantedByAnyProfile && // Never update plugins that are not wanted by any profile(not enabled) + (p.InstalledPlugin.IsWantedByAnyProfile || this.config.UpdateDisabledPlugins) && // Never update plugins that are not wanted by any profile(not enabled) !p.InstalledPlugin.Manifest.ScheduledForDeletion); // Never update plugins that we want to get rid of return updateablePlugins.Where(FilterPlugin).ToList();