From a64fdc7c7be79660391e3854ec4fd52334627271 Mon Sep 17 00:00:00 2001 From: Caraxi Date: Sat, 13 May 2023 22:08:59 +0930 Subject: [PATCH 1/2] Add `.InstalledPlugins` --- Dalamud/Plugin/DalamudPluginInterface.cs | 5 +++++ Dalamud/Plugin/InstalledPluginState.cs | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 Dalamud/Plugin/InstalledPluginState.cs diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs index 3ca9a3b38..d7d406806 100644 --- a/Dalamud/Plugin/DalamudPluginInterface.cs +++ b/Dalamud/Plugin/DalamudPluginInterface.cs @@ -200,6 +200,11 @@ public sealed class DalamudPluginInterface : IDisposable /// public List PluginInternalNames => Service.Get().InstalledPlugins.Select(p => p.Manifest.InternalName).ToList(); + /// + /// Gets a list of installed plugins along with their current state. + /// + public IEnumerable InstalledPlugins => Service.Get().InstalledPlugins.Select(p => new InstalledPluginState(p.Name, p.Manifest.InternalName, p.IsLoaded, p.Manifest.EffectiveVersion)); + /// /// Opens the with the plugin name set as search target. /// diff --git a/Dalamud/Plugin/InstalledPluginState.cs b/Dalamud/Plugin/InstalledPluginState.cs new file mode 100644 index 000000000..322db3423 --- /dev/null +++ b/Dalamud/Plugin/InstalledPluginState.cs @@ -0,0 +1,5 @@ +using System; + +namespace Dalamud.Plugin; + +public record InstalledPluginState(string Name, string InternalName, bool IsLoaded, Version Version); From 362661c3204ad57522d1179ac4e99c9b56b57f1e Mon Sep 17 00:00:00 2001 From: Caraxi Date: Sat, 13 May 2023 22:23:53 +0930 Subject: [PATCH 2/2] Mark `PluginNames` and `PluginInternalNames` as Obsolete --- Dalamud/Plugin/DalamudPluginInterface.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs index d7d406806..8f97c7d82 100644 --- a/Dalamud/Plugin/DalamudPluginInterface.cs +++ b/Dalamud/Plugin/DalamudPluginInterface.cs @@ -193,11 +193,13 @@ public sealed class DalamudPluginInterface : IDisposable /// /// Gets a list of installed plugin names. /// + [Obsolete($"This property is obsolete. Use {nameof(InstalledPlugins)} instead.")] public List PluginNames => Service.Get().InstalledPlugins.Select(p => p.Manifest.Name).ToList(); /// /// Gets a list of installed plugin internal names. /// + [Obsolete($"This property is obsolete. Use {nameof(InstalledPlugins)} instead.")] public List PluginInternalNames => Service.Get().InstalledPlugins.Select(p => p.Manifest.InternalName).ToList(); ///