From a67ba46f7f1991f48e4760b92e809d618db22f85 Mon Sep 17 00:00:00 2001 From: mctaylors Date: Sun, 17 Dec 2023 18:16:11 +0300 Subject: [PATCH] Add repository link button --- src/Commands/AboutCommandGroup.cs | 18 +++++++++++++++--- src/Extensions/FeedbackServiceExtensions.cs | 6 ++++-- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/Commands/AboutCommandGroup.cs b/src/Commands/AboutCommandGroup.cs index e491470..63fcbf0 100644 --- a/src/Commands/AboutCommandGroup.cs +++ b/src/Commands/AboutCommandGroup.cs @@ -8,9 +8,11 @@ using Remora.Commands.Attributes; using Remora.Commands.Groups; using Remora.Discord.API.Abstractions.Objects; using Remora.Discord.API.Abstractions.Rest; +using Remora.Discord.API.Objects; using Remora.Discord.Commands.Attributes; using Remora.Discord.Commands.Conditions; using Remora.Discord.Commands.Contexts; +using Remora.Discord.Commands.Feedback.Messages; using Remora.Discord.Commands.Feedback.Services; using Remora.Discord.Extensions.Embeds; using Remora.Rest.Core; @@ -31,6 +33,8 @@ public class AboutCommandGroup : CommandGroup ("neroduckale", new Snowflake(474943797063843851)) }; + private const string RepositoryUrl = "https://github.com/LabsDevelopment/Octobot"; + private readonly ICommandContext _context; private readonly IFeedbackService _feedback; private readonly GuildDataService _guildData; @@ -91,14 +95,22 @@ public class AboutCommandGroup : CommandGroup builder.AppendBulletPointLine($"{tag} — {$"AboutDeveloper@{dev.Username}".Localized()}"); } - builder.Append($"### [{Messages.AboutTitleRepository}](https://github.com/LabsDevelopment/Octobot)"); - var embed = new EmbedBuilder().WithSmallTitle(Messages.AboutBot, bot) .WithDescription(builder.ToString()) .WithColour(ColorsList.Cyan) .WithImageUrl("https://cdn.mctaylors.ru/octobot-banner.png") .Build(); - return await _feedback.SendContextualEmbedResultAsync(embed, ct); + var button = new ButtonComponent( + ButtonComponentStyle.Link, + Messages.AboutTitleRepository, + URL: RepositoryUrl + ); + + return await _feedback.SendContextualEmbedResultAsync(embed, ct, + new FeedbackMessageOptions(MessageComponents: new[] + { + new ActionRowComponent(new[] { button }) + })); } } diff --git a/src/Extensions/FeedbackServiceExtensions.cs b/src/Extensions/FeedbackServiceExtensions.cs index 739aa34..d01be41 100644 --- a/src/Extensions/FeedbackServiceExtensions.cs +++ b/src/Extensions/FeedbackServiceExtensions.cs @@ -1,4 +1,5 @@ using Remora.Discord.API.Objects; +using Remora.Discord.Commands.Feedback.Messages; using Remora.Discord.Commands.Feedback.Services; using Remora.Results; @@ -7,13 +8,14 @@ namespace Octobot.Extensions; public static class FeedbackServiceExtensions { public static async Task SendContextualEmbedResultAsync( - this IFeedbackService feedback, Result embedResult, CancellationToken ct = default) + this IFeedbackService feedback, Result embedResult, CancellationToken ct = default, + FeedbackMessageOptions? options = null) { if (!embedResult.IsDefined(out var embed)) { return Result.FromError(embedResult); } - return (Result)await feedback.SendContextualEmbedAsync(embed, ct: ct); + return (Result)await feedback.SendContextualEmbedAsync(embed, options, ct); } }