feat(PluginManager): add switch to allow for loading plugins of all API levels

This commit is contained in:
goat 2021-07-12 12:00:19 +02:00
parent 3274bd047d
commit 1e33b7deb5
No known key found for this signature in database
GPG key ID: F18F057873895461
4 changed files with 15 additions and 2 deletions

View file

@ -164,6 +164,11 @@ namespace Dalamud.Configuration.Internal
/// </summary>
public string DalamudBetaKind { get; set; }
/// <summary>
/// Gets or sets a value indicating whether or not all plugins, regardless of API level, should be loaded.
/// </summary>
public bool LoadAllApiLevels { get; set; }
/// <summary>
/// Load a configuration from the provided path.
/// </summary>

View file

@ -464,6 +464,14 @@ namespace Dalamud.Interface.Internal
this.dalamud.PluginManager.ScanDevPlugins();
}
ImGui.Separator();
if (ImGui.MenuItem("Load all API levels", null, this.dalamud.Configuration.LoadAllApiLevels))
{
this.dalamud.Configuration.LoadAllApiLevels = !this.dalamud.Configuration.LoadAllApiLevels;
this.dalamud.Configuration.Save();
}
ImGui.Separator();
ImGui.MenuItem("API Level:" + PluginManager.DalamudApiLevel, false);
ImGui.MenuItem("Loaded plugins:" + this.dalamud.PluginManager?.InstalledPlugins.Count, false);

View file

@ -207,7 +207,7 @@ namespace Dalamud.Plugin.Internal
if (this.Manifest.ApplicableVersion < this.dalamud.StartInfo.GameVersion)
throw new InvalidPluginOperationException($"Unable to load {this.Name}, no applicable version");
if (this.Manifest.DalamudApiLevel < PluginManager.DalamudApiLevel)
if (this.Manifest.DalamudApiLevel < PluginManager.DalamudApiLevel && !this.dalamud.Configuration.LoadAllApiLevels)
throw new InvalidPluginOperationException($"Unable to load {this.Name}, incompatible API level");
if (this.Manifest.Disabled)

View file

@ -765,7 +765,7 @@ namespace Dalamud.Plugin.Internal
return false;
// API level
if (manifest.DalamudApiLevel < DalamudApiLevel)
if (manifest.DalamudApiLevel < DalamudApiLevel && !this.dalamud.Configuration.LoadAllApiLevels)
return false;
// Banned