From 40c0cf04b8eafd30c709559291b9b792b901b653 Mon Sep 17 00:00:00 2001 From: mctaylors Date: Tue, 19 Mar 2024 21:05:36 +0300 Subject: [PATCH] Disable issue report button if dirty version detected Signed-off-by: mctaylors --- locale/Messages.resx | 3 +++ locale/Messages.ru.resx | 3 +++ locale/Messages.tt-ru.resx | 3 +++ src/BuildInfo.cs | 2 +- src/Commands/AboutCommandGroup.cs | 16 ++++++++++++++++ .../Events/ErrorLoggingPostExecutionEvent.cs | 16 ++++++++++++++++ src/Messages.Designer.cs | 6 ++++++ src/Responders/GuildLoadedResponder.cs | 13 +++++++++++++ 8 files changed, 61 insertions(+), 1 deletion(-) diff --git a/locale/Messages.resx b/locale/Messages.resx index c2be4cd..79526a8 100644 --- a/locale/Messages.resx +++ b/locale/Messages.resx @@ -663,4 +663,7 @@ Welcome messages channel + + Can't report an issue in the dirty version + diff --git a/locale/Messages.ru.resx b/locale/Messages.ru.resx index d38509c..06d5354 100644 --- a/locale/Messages.ru.resx +++ b/locale/Messages.ru.resx @@ -663,4 +663,7 @@ Канал для приветствий + + Нельзя сообщить о проблеме в dirty версии + diff --git a/locale/Messages.tt-ru.resx b/locale/Messages.tt-ru.resx index dfb1ee6..31453d8 100644 --- a/locale/Messages.tt-ru.resx +++ b/locale/Messages.tt-ru.resx @@ -663,4 +663,7 @@ канал куда говорить здравствуйте + + вот иди сам и почини что сломал + diff --git a/src/BuildInfo.cs b/src/BuildInfo.cs index 50f86a2..c704328 100644 --- a/src/BuildInfo.cs +++ b/src/BuildInfo.cs @@ -34,7 +34,7 @@ public static class BuildInfo } } - private static bool IsDirty + public static bool IsDirty { get { diff --git a/src/Commands/AboutCommandGroup.cs b/src/Commands/AboutCommandGroup.cs index 05b1855..88ac423 100644 --- a/src/Commands/AboutCommandGroup.cs +++ b/src/Commands/AboutCommandGroup.cs @@ -111,6 +111,22 @@ public class AboutCommandGroup : CommandGroup URL: BuildInfo.RepositoryUrl ); + if (BuildInfo.IsDirty) + { + var dirtyButton = new ButtonComponent( + ButtonComponentStyle.Link, + Messages.ButtonDirty, + new PartialEmoji(Name: "⚠️"), + IsDisabled: true + ); + + return await _feedback.SendContextualEmbedResultAsync(embed, + new FeedbackMessageOptions(MessageComponents: new[] + { + new ActionRowComponent(new[] { repositoryButton, dirtyButton }) + }), ct); + } + var issuesButton = new ButtonComponent( ButtonComponentStyle.Link, Messages.ButtonReportIssue, diff --git a/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs b/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs index 5d7830b..8f06423 100644 --- a/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs +++ b/src/Commands/Events/ErrorLoggingPostExecutionEvent.cs @@ -68,6 +68,22 @@ public class ErrorLoggingPostExecutionEvent : IPostExecutionEvent .WithColour(ColorsList.Red) .Build(); + if (BuildInfo.IsDirty) + { + var dirtyButton = new ButtonComponent( + ButtonComponentStyle.Link, + Messages.ButtonDirty, + new PartialEmoji(Name: "⚠️"), + IsDisabled: true + ); + + return await _feedback.SendContextualEmbedResultAsync(embed, + new FeedbackMessageOptions(MessageComponents: new[] + { + new ActionRowComponent(new[] { dirtyButton }) + }), ct); + } + var issuesButton = new ButtonComponent( ButtonComponentStyle.Link, Messages.ButtonReportIssue, diff --git a/src/Messages.Designer.cs b/src/Messages.Designer.cs index 707c814..2a8ae0d 100644 --- a/src/Messages.Designer.cs +++ b/src/Messages.Designer.cs @@ -1196,5 +1196,11 @@ namespace Octobot { return ResourceManager.GetString("SettingsWelcomeMessagesChannel", resourceCulture); } } + + internal static string ButtonDirty { + get { + return ResourceManager.GetString("ButtonDirty", resourceCulture); + } + } } } diff --git a/src/Responders/GuildLoadedResponder.cs b/src/Responders/GuildLoadedResponder.cs index c493910..fb53bb9 100644 --- a/src/Responders/GuildLoadedResponder.cs +++ b/src/Responders/GuildLoadedResponder.cs @@ -113,6 +113,19 @@ public class GuildLoadedResponder : IResponder .WithColour(ColorsList.Red) .Build(); + if (BuildInfo.IsDirty) + { + var dirtyButton = new ButtonComponent( + ButtonComponentStyle.Link, + Messages.ButtonDirty, + new PartialEmoji(Name: "⚠️"), + IsDisabled: true + ); + + return await _channelApi.CreateMessageWithEmbedResultAsync(channel, embedResult: errorEmbed, + components: new[] { new ActionRowComponent(new[] { dirtyButton }) }, ct: ct); + } + var issuesButton = new ButtonComponent( ButtonComponentStyle.Link, Messages.ButtonReportIssue,