diff --git a/Dalamud/Plugin/InstalledPluginState.cs b/Dalamud/Plugin/InstalledPluginState.cs index 6700a1f8d..64c8e40a5 100644 --- a/Dalamud/Plugin/InstalledPluginState.cs +++ b/Dalamud/Plugin/InstalledPluginState.cs @@ -1,4 +1,5 @@ -using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types; +using Dalamud.Plugin.Internal.Types.Manifest; namespace Dalamud.Plugin; @@ -22,6 +23,47 @@ public interface IExposedPlugin /// bool IsLoaded { get; } + /// + /// Gets a value indicating whether this plugin's API level is out of date. + /// + bool IsOutdated { get; } + + /// + /// Gets a value indicating whether the plugin is for testing use only. + /// + bool IsTesting { get; } + + /// + /// Gets a value indicating whether or not this plugin is orphaned(belongs to a repo) or not. + /// + bool IsOrphaned { get; } + + /// + /// Gets a value indicating whether or not this plugin is serviced(repo still exists, but plugin no longer does). + /// + bool IsDecommissioned { get; } + + /// + /// Gets a value indicating whether this plugin has been banned. + /// + bool IsBanned { get; } + + /// + /// Gets a value indicating whether this plugin is dev plugin. + /// + bool IsDev { get; } + + /// + /// Gets a value indicating whether this manifest is associated with a plugin that was installed from a third party + /// repo. + /// + bool IsThirdParty { get; } + + /// + /// Gets the plugin manifest. + /// + ILocalPluginManifest Manifest { get; } + /// /// Gets the version of the plugin. /// @@ -74,6 +116,30 @@ internal sealed class ExposedPlugin(LocalPlugin plugin) : IExposedPlugin /// public bool HasConfigUi => plugin.DalamudInterface?.LocalUiBuilder.HasConfigUi ?? false; + /// + public bool IsOutdated => plugin.IsOutdated; + + /// + public bool IsTesting => plugin.IsTesting; + + /// + public bool IsOrphaned => plugin.IsOrphaned; + + /// + public bool IsDecommissioned => plugin.IsDecommissioned; + + /// + public bool IsBanned => plugin.IsBanned; + + /// + public bool IsDev => plugin.IsDev; + + /// + public bool IsThirdParty => plugin.IsThirdParty; + + /// + public ILocalPluginManifest Manifest => plugin.Manifest; + /// public void OpenMainUi() {