diff --git a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs index 9c300e438..341d6c037 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs @@ -387,11 +387,16 @@ namespace Dalamud.Interface.Internal.Windows { ImGui.Text(Locs.FeedbackModal_Text(this.feedbackPlugin.Name)); - if (this.pluginListUpdatable.Any( - up => up.InstalledPlugin.Manifest.InternalName == this.feedbackPlugin?.InternalName)) - { - ImGui.TextColored(ImGuiColors.DalamudRed, Locs.FeedbackModal_HasUpdate); - } + if (this.feedbackPlugin?.FeedbackMessage != null) + { + ImGui.TextWrapped(this.feedbackPlugin.FeedbackMessage); + } + + if (this.pluginListUpdatable.Any( + up => up.InstalledPlugin.Manifest.InternalName == this.feedbackPlugin?.InternalName)) + { + ImGui.TextColored(ImGuiColors.DalamudRed, Locs.FeedbackModal_HasUpdate); + } ImGui.Spacing(); @@ -1226,10 +1231,10 @@ namespace Dalamud.Interface.Internal.Windows this.DrawVisitRepoUrlButton(manifest.RepoUrl); - if (!manifest.SourceRepo.IsThirdParty) - { - this.DrawSendFeedbackButton(manifest); - } + if (!manifest.SourceRepo.IsThirdParty && manifest.AcceptsFeedback) + { + this.DrawSendFeedbackButton(manifest); + } ImGuiHelpers.ScaledDummy(5); @@ -1400,8 +1405,8 @@ namespace Dalamud.Interface.Internal.Windows ImGui.SameLine(); ImGui.TextColored(ImGuiColors.DalamudGrey3, downloadText); - var isThirdParty = manifest.IsThirdParty; - var canFeedback = !isThirdParty && !plugin.IsDev && plugin.Manifest.DalamudApiLevel == PluginManager.DalamudApiLevel; + var isThirdParty = manifest.IsThirdParty; + var canFeedback = !isThirdParty && !plugin.IsDev && plugin.Manifest.DalamudApiLevel == PluginManager.DalamudApiLevel && plugin.Manifest.AcceptsFeedback; // Installed from if (plugin.IsDev) diff --git a/Dalamud/Plugin/Internal/Types/PluginManifest.cs b/Dalamud/Plugin/Internal/Types/PluginManifest.cs index ddacb66de..537535d4b 100644 --- a/Dalamud/Plugin/Internal/Types/PluginManifest.cs +++ b/Dalamud/Plugin/Internal/Types/PluginManifest.cs @@ -157,9 +157,23 @@ namespace Dalamud.Plugin.Internal.Types /// public List? ImageUrls { get; init; } - /// - /// Gets an URL for the plugin's icon. - /// - public string? IconUrl { get; init; } - } + /// + /// Gets an URL for the plugin's icon. + /// + public string? IconUrl { get; init; } + + /// + /// Gets a value that indicates whether or not this plugin accepts feedback. + /// + public bool AcceptsFeedback { get; init; } = true; + + /// + /// Gets a message that is shown to users when sending feedback. + /// + public string? FeedbackMessage { get; init; } + + /// + /// Gets a value indicating the webhook URL feedback is sent to. + /// + public string? FeedbackWebhook { get; init; } }