From 0ada421460ceb7767a64d48e7419dbe1e05c0a30 Mon Sep 17 00:00:00 2001
From: Jackson <9527380+Jaksuhn@users.noreply.github.com>
Date: Sat, 15 Feb 2025 20:58:04 +0100
Subject: [PATCH] Expose more of `LocalPlugin` to `ExposedPlugin` (#2177)
---
Dalamud/Plugin/InstalledPluginState.cs | 68 +++++++++++++++++++++++++-
1 file changed, 67 insertions(+), 1 deletion(-)
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()
{