mirror of
https://github.com/TeamOctolings/Octobot.git
synced 2025-04-20 00:43:36 +03:00
The project structure has been changed because the previous one had everything in 1 folder. From this PR onwards, the following is true: - The source code is stored in `src/` - `*.resx` and `Messages.Designer.cs` is stored in `locale/` - Documentation is stored on the wiki and in `docs/` - Miscellaneous files, such as dotfiles, are stored in the root folder of the repository This PR additionally fixes an issue that would cause logs of edited messages to not be syntax highlighted. This happened because the responder of edited messages was changed to use the universal `InBlockCode` extension method which did not support syntax highlighting until this PR This PR additionally changes CODEOWNERS to be more reliable. Previously, it would be possible for some PRs to be unable to be approved because the only person who can approve them is the same person who opened the PR. --------- Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
36 lines
1.4 KiB
C#
36 lines
1.4 KiB
C#
using Remora.Discord.API.Abstractions.Objects;
|
|
using Remora.Discord.Commands.Feedback.Messages;
|
|
using Remora.Discord.Commands.Feedback.Services;
|
|
using Remora.Discord.Interactivity;
|
|
using Remora.Results;
|
|
|
|
// ReSharper disable ClassNeverInstantiated.Global
|
|
// ReSharper disable UnusedMember.Global
|
|
|
|
namespace Boyfriend;
|
|
|
|
/// <summary>
|
|
/// Handles responding to various interactions.
|
|
/// </summary>
|
|
public class InteractionResponders : InteractionGroup {
|
|
private readonly FeedbackService _feedbackService;
|
|
|
|
public InteractionResponders(FeedbackService feedbackService) {
|
|
_feedbackService = feedbackService;
|
|
}
|
|
|
|
/// <summary>
|
|
/// A button that will output an ephemeral embed containing the information about a scheduled event.
|
|
/// </summary>
|
|
/// <param name="state">The ID of the guild and scheduled event, encoded as "guildId:eventId".</param>
|
|
/// <returns>An ephemeral feedback sending result which may or may not have succeeded.</returns>
|
|
[Button("scheduled-event-details")]
|
|
public async Task<Result> OnStatefulButtonClicked(string? state = null) {
|
|
if (state is null) return Result.FromError(new ArgumentNullError(nameof(state)));
|
|
|
|
var idArray = state.Split(':');
|
|
return (Result)await _feedbackService.SendContextualAsync(
|
|
$"https://discord.com/events/{idArray[0]}/{idArray[1]}",
|
|
options: new FeedbackMessageOptions(MessageFlags: MessageFlags.Ephemeral));
|
|
}
|
|
}
|