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; }
}