From 5e8e889507f927c9c0eb4843f0e4502517459487 Mon Sep 17 00:00:00 2001 From: neroduckale Date: Fri, 1 Dec 2023 06:46:31 +0500 Subject: [PATCH] /listremind now has a link to a message with the creation of a reminder for messages like "this" --- src/Commands/RemindCommandGroup.cs | 33 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/Commands/RemindCommandGroup.cs b/src/Commands/RemindCommandGroup.cs index 6e4d31b..99f9947 100644 --- a/src/Commands/RemindCommandGroup.cs +++ b/src/Commands/RemindCommandGroup.cs @@ -93,7 +93,8 @@ public class RemindCommandGroup : CommandGroup builder.Append("- ").AppendLine(string.Format(Messages.ReminderPosition, Markdown.InlineCode((i + 1).ToString()))) .Append(" - ").AppendLine(string.Format(Messages.ReminderText, Markdown.InlineCode(reminder.Text))) .Append(" - ") - .AppendLine(string.Format(Messages.ReminderTime, Markdown.Timestamp(reminder.At))); + .AppendLine(string.Format(Messages.ReminderTime, Markdown.Timestamp(reminder.At))) + .Append(" - ").AppendLine(reminder.Message); } var embed = new EmbedBuilder().WithSmallTitle( @@ -137,24 +138,16 @@ public class RemindCommandGroup : CommandGroup var data = await _guildData.GetData(guildId, CancellationToken); Messages.Culture = GuildSettings.Language.Get(data.Settings); - return await AddReminderAsync(@in, text, data, channelId, executor, CancellationToken); + return await AddReminderAsync(@in, text, data, channelId, executor, guildId, CancellationToken); } private async Task AddReminderAsync( TimeSpan @in, string text, GuildData data, - Snowflake channelId, IUser executor, CancellationToken ct = default) + Snowflake channelId, IUser executor, Snowflake guildId, CancellationToken ct = default) { var remindAt = DateTimeOffset.UtcNow.Add(@in); var memberData = data.GetOrCreateMemberData(executor.ID); - memberData.Reminders.Add( - new Reminder - { - At = remindAt, - Channel = channelId.Value, - Text = text - }); - var builder = new StringBuilder().Append("- ").AppendLine(string.Format( Messages.ReminderText, Markdown.InlineCode(text))) .Append("- ").Append(string.Format(Messages.ReminderTime, Markdown.Timestamp(remindAt))); @@ -163,10 +156,22 @@ public class RemindCommandGroup : CommandGroup string.Format(Messages.ReminderCreated, executor.GetTag()), executor) .WithDescription(builder.ToString()) .WithColour(ColorsList.Green) - .WithFooter(string.Format(Messages.ReminderPosition, memberData.Reminders.Count)) + .WithFooter(string.Format(Messages.ReminderPosition, memberData.Reminders.Count + 1)) .Build(); - - return await _feedback.SendContextualEmbedResultAsync(embed, ct); + var message = await _feedback.SendContextualEmbedAsync(embed.Entity, ct: ct); + var messageId = message.Entity.ID.Value; + var builderMessage = new StringBuilder().AppendLine( + string.Format(Messages.DescriptionActionJumpToMessage, + $"https://discord.com/channels/{guildId}/{channelId}/{messageId}")); + memberData.Reminders.Add( + new Reminder + { + At = remindAt, + Channel = channelId.Value, + Text = text, + Message = builderMessage.ToString() + }); + return Result.FromSuccess(); } ///