From 4e7531f7030cb2523a2f5f9f5caeb90232aa9c6d Mon Sep 17 00:00:00 2001 From: goaaats Date: Tue, 19 Mar 2024 22:43:48 +0100 Subject: [PATCH] installer: always pick dev plugin first when collecting local plugins for available manifests fixes a bug where the available and the installed plugin showed separately in the plugin list if the LocalDevPlugin of the same internalname was in it before the LocalPlugin --- .../Windows/PluginInstaller/PluginInstallerWindow.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs index 210290f17..a9b692127 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstaller/PluginInstallerWindow.cs @@ -1158,10 +1158,13 @@ internal class PluginInstallerWindow : Window, IDisposable // Go through all AVAILABLE manifests, associate them with a NON-DEV local plugin, if one is available, and remove it from the pile foreach (var availableManifest in this.categoryManager.GetCurrentCategoryContent(filteredAvailableManifests).Cast()) { - var plugin = this.pluginListInstalled.FirstOrDefault(plugin => plugin.Manifest.InternalName == availableManifest.InternalName && plugin.Manifest.RepoUrl == availableManifest.RepoUrl); + var plugin = this.pluginListInstalled + .FirstOrDefault(plugin => plugin.Manifest.InternalName == availableManifest.InternalName && + plugin.Manifest.RepoUrl == availableManifest.RepoUrl && + !plugin.IsDev); // We "consumed" this plugin from the pile and remove it. - if (plugin != null && !plugin.IsDev) + if (plugin != null) { installedPlugins.Remove(plugin); proxies.Add(new PluginInstallerAvailablePluginProxy(null, plugin));