feat: add ban reason in the installer

This commit is contained in:
Aireil 2021-10-08 23:38:00 +02:00
parent daaf3c9328
commit f8966318c8
3 changed files with 27 additions and 2 deletions

View file

@ -132,6 +132,7 @@ namespace Dalamud.Plugin.Internal
var pluginManager = Service<PluginManager>.Get();
this.IsBanned = pluginManager.IsManifestBanned(this.Manifest);
this.BanReason = pluginManager.GetBanReason(this.Manifest);
this.SaveManifest();
}
@ -167,6 +168,11 @@ namespace Dalamud.Plugin.Internal
/// </summary>
public string Name => this.instance?.Name ?? this.Manifest.Name ?? this.DllFile.Name;
/// <summary>
/// Gets an optional reason, if the plugin is banned.
/// </summary>
public string BanReason { get; }
/// <summary>
/// Gets a value indicating whether the plugin is loaded and running.
/// </summary>

View file

@ -954,6 +954,16 @@ namespace Dalamud.Plugin.Internal
return this.bannedPlugins.Any(ban => ban.Name == manifest.InternalName && ban.AssemblyVersion == manifest.AssemblyVersion);
}
/// <summary>
/// Get the reason of a banned plugin by inspecting the manifest.
/// </summary>
/// <param name="manifest">Manifest to inspect.</param>
/// <returns>The reason of the ban, if any.</returns>
public string GetBanReason(PluginManifest manifest)
{
return this.bannedPlugins.FirstOrDefault(ban => ban.Name == manifest.InternalName).Reason;
}
private void DetectAvailablePluginUpdates()
{
var updatablePlugins = new List<AvailablePluginUpdate>();
@ -1024,6 +1034,9 @@ namespace Dalamud.Plugin.Internal
[JsonProperty]
public Version AssemblyVersion { get; private set; }
[JsonProperty]
public string Reason { get; private set; }
}
private struct PluginDef