diff --git a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs index abe569ec8..335b6dc67 100644 --- a/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs +++ b/Dalamud/Interface/Internal/Windows/PluginInstallerWindow.cs @@ -387,6 +387,11 @@ internal class PluginInstallerWindow : Window, IDisposable { ImGui.Text(Locs.FeedbackModal_Text(this.feedbackPlugin.Name)); + if (this.feedbackPlugin?.FeedbackMessage != null) + { + ImGui.TextWrapped(this.feedbackPlugin.FeedbackMessage); + } + if (this.pluginListUpdatable.Any( up => up.InstalledPlugin.Manifest.InternalName == this.feedbackPlugin?.InternalName)) { @@ -1226,7 +1231,7 @@ internal class PluginInstallerWindow : Window, IDisposable this.DrawVisitRepoUrlButton(manifest.RepoUrl); - if (!manifest.SourceRepo.IsThirdParty) + if (!manifest.SourceRepo.IsThirdParty && manifest.AcceptsFeedback) { this.DrawSendFeedbackButton(manifest); } @@ -1401,7 +1406,7 @@ internal class PluginInstallerWindow : Window, IDisposable ImGui.TextColored(ImGuiColors.DalamudGrey3, downloadText); var isThirdParty = manifest.IsThirdParty; - var canFeedback = !isThirdParty && !plugin.IsDev && plugin.Manifest.DalamudApiLevel == PluginManager.DalamudApiLevel; + 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 e9f2eadf5..772626c32 100644 --- a/Dalamud/Plugin/Internal/Types/PluginManifest.cs +++ b/Dalamud/Plugin/Internal/Types/PluginManifest.cs @@ -161,4 +161,19 @@ internal record PluginManifest /// 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; } }