From d1623267ebfe88b8e60dc1145b1d2b25b0b51b20 Mon Sep 17 00:00:00 2001 From: Raymond Date: Tue, 14 Sep 2021 07:52:38 -0400 Subject: [PATCH 1/3] Allow dev plugins to be updated, restrict updateAll instead --- Dalamud/Plugin/Internal/PluginManager.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs index ad3014b2f..f806fa4e6 100644 --- a/Dalamud/Plugin/Internal/PluginManager.cs +++ b/Dalamud/Plugin/Internal/PluginManager.cs @@ -685,7 +685,7 @@ namespace Dalamud.Plugin.Internal } /// - /// Update all plugins. + /// Update all non-dev plugins. /// /// Perform a dry run, don't install anything. /// Success or failure and a list of updated plugin metadata. @@ -698,6 +698,10 @@ namespace Dalamud.Plugin.Internal // Prevent collection was modified errors foreach (var plugin in this.UpdatablePlugins) { + // Can't update that! + if (plugin.InstalledPlugin.IsDev) + return null; + var result = await this.UpdateSinglePluginAsync(plugin, false, dryRun); if (result != null) updatedList.Add(result); @@ -721,10 +725,6 @@ namespace Dalamud.Plugin.Internal { var plugin = metadata.InstalledPlugin; - // Can't update that! - if (plugin.IsDev) - return null; - var updateStatus = new PluginUpdateStatus { InternalName = plugin.Manifest.InternalName, From 56002d5e986171e29e0d7503314ed3d16608d336 Mon Sep 17 00:00:00 2001 From: Raymond Date: Tue, 14 Sep 2021 12:29:31 -0400 Subject: [PATCH 2/3] delete dev plugin instead of disable --- Dalamud/Plugin/Internal/PluginManager.cs | 31 ++++++++++++++++++------ 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs index f806fa4e6..952cf605d 100644 --- a/Dalamud/Plugin/Internal/PluginManager.cs +++ b/Dalamud/Plugin/Internal/PluginManager.cs @@ -753,16 +753,33 @@ namespace Dalamud.Plugin.Internal } } - try + if (plugin.IsDev) { - plugin.Disable(); - this.InstalledPlugins = this.InstalledPlugins.Remove(plugin); + try + { + plugin.DllFile.Delete(); + this.InstalledPlugins = this.InstalledPlugins.Remove(plugin); + } + catch (Exception ex) + { + Log.Error(ex, "Error during delete (update)"); + updateStatus.WasUpdated = false; + return updateStatus; + } } - catch (Exception ex) + else { - Log.Error(ex, "Error during disable (update)"); - updateStatus.WasUpdated = false; - return updateStatus; + try + { + plugin.Disable(); + this.InstalledPlugins = this.InstalledPlugins.Remove(plugin); + } + catch (Exception ex) + { + Log.Error(ex, "Error during disable (update)"); + updateStatus.WasUpdated = false; + return updateStatus; + } } try From 830a11b6ecff73bebfa90a75cb61aeeb7f254715 Mon Sep 17 00:00:00 2001 From: Raymond Date: Tue, 14 Sep 2021 13:47:33 -0400 Subject: [PATCH 3/3] fix: update plugin button didnt work --- Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs index d55e70946..6d60a1da8 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs @@ -1361,7 +1361,7 @@ namespace Dalamud.Interface.Internal.Windows { this.installStatus = OperationStatus.InProgress; - Task.Run(() => pluginManager.UpdateSinglePluginAsync(update, true, false)) + Task.Run(async () => await pluginManager.UpdateSinglePluginAsync(update, true, false)) .ContinueWith(task => { // There is no need to set as Complete for an individual plugin installation