From d06a7efff8dcb3e9e566d0cd7a3d09f786e5c68b Mon Sep 17 00:00:00 2001
From: goaaats <16760685+goaaats@users.noreply.github.com>
Date: Sun, 7 Nov 2021 14:33:15 +0100
Subject: [PATCH] feat: add "Load banned plugins" option to dev menu
---
Dalamud/Configuration/Internal/DalamudConfiguration.cs | 5 +++++
Dalamud/Interface/Internal/DalamudInterface.cs | 6 ++++++
Dalamud/Plugin/Internal/PluginManager.cs | 3 ++-
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/Dalamud/Configuration/Internal/DalamudConfiguration.cs b/Dalamud/Configuration/Internal/DalamudConfiguration.cs
index b67b84034..b4263679e 100644
--- a/Dalamud/Configuration/Internal/DalamudConfiguration.cs
+++ b/Dalamud/Configuration/Internal/DalamudConfiguration.cs
@@ -207,6 +207,11 @@ namespace Dalamud.Configuration.Internal
///
public bool LoadAllApiLevels { get; set; }
+ ///
+ /// Gets or sets a value indicating whether or not banned plugins should be loaded.
+ ///
+ public bool LoadBannedPlugins { get; set; }
+
///
/// Gets or sets a value indicating whether or not any plugin should be loaded when the game is started.
/// It is reset immediately when read.
diff --git a/Dalamud/Interface/Internal/DalamudInterface.cs b/Dalamud/Interface/Internal/DalamudInterface.cs
index f781301fe..ece1b4cc6 100644
--- a/Dalamud/Interface/Internal/DalamudInterface.cs
+++ b/Dalamud/Interface/Internal/DalamudInterface.cs
@@ -624,6 +624,12 @@ namespace Dalamud.Interface.Internal
configuration.Save();
}
+ if (ImGui.MenuItem("Load banned plugins", null, configuration.LoadBannedPlugins))
+ {
+ configuration.LoadBannedPlugins = !configuration.LoadBannedPlugins;
+ configuration.Save();
+ }
+
ImGui.Separator();
ImGui.MenuItem("API Level:" + PluginManager.DalamudApiLevel, false);
ImGui.MenuItem("Loaded plugins:" + pluginManager.InstalledPlugins.Count, false);
diff --git a/Dalamud/Plugin/Internal/PluginManager.cs b/Dalamud/Plugin/Internal/PluginManager.cs
index 536f9e48e..532a0af2b 100644
--- a/Dalamud/Plugin/Internal/PluginManager.cs
+++ b/Dalamud/Plugin/Internal/PluginManager.cs
@@ -952,7 +952,8 @@ namespace Dalamud.Plugin.Internal
/// A value indicating whether the plugin/manifest has been banned.
public bool IsManifestBanned(PluginManifest manifest)
{
- return this.bannedPlugins.Any(ban => ban.Name == manifest.InternalName && ban.AssemblyVersion >= manifest.AssemblyVersion);
+ var configuration = Service.Get();
+ return configuration.LoadBannedPlugins || this.bannedPlugins.Any(ban => ban.Name == manifest.InternalName && ban.AssemblyVersion >= manifest.AssemblyVersion);
}
///