1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-04-20 00:43:36 +03:00

/listremind now has a link to a message with the creation of a reminder for messages like "this"

This commit is contained in:
neroduckale 2023-12-01 06:46:31 +05:00
parent 5fce01c15c
commit 5e8e889507
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 399E73062E1A3667

View file

@ -93,7 +93,8 @@ public class RemindCommandGroup : CommandGroup
builder.Append("- ").AppendLine(string.Format(Messages.ReminderPosition, Markdown.InlineCode((i + 1).ToString()))) 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.ReminderText, Markdown.InlineCode(reminder.Text)))
.Append(" - ") .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( var embed = new EmbedBuilder().WithSmallTitle(
@ -137,24 +138,16 @@ public class RemindCommandGroup : CommandGroup
var data = await _guildData.GetData(guildId, CancellationToken); var data = await _guildData.GetData(guildId, CancellationToken);
Messages.Culture = GuildSettings.Language.Get(data.Settings); 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<Result> AddReminderAsync( private async Task<Result> AddReminderAsync(
TimeSpan @in, string text, GuildData data, 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 remindAt = DateTimeOffset.UtcNow.Add(@in);
var memberData = data.GetOrCreateMemberData(executor.ID); 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( var builder = new StringBuilder().Append("- ").AppendLine(string.Format(
Messages.ReminderText, Markdown.InlineCode(text))) Messages.ReminderText, Markdown.InlineCode(text)))
.Append("- ").Append(string.Format(Messages.ReminderTime, Markdown.Timestamp(remindAt))); .Append("- ").Append(string.Format(Messages.ReminderTime, Markdown.Timestamp(remindAt)));
@ -163,10 +156,22 @@ public class RemindCommandGroup : CommandGroup
string.Format(Messages.ReminderCreated, executor.GetTag()), executor) string.Format(Messages.ReminderCreated, executor.GetTag()), executor)
.WithDescription(builder.ToString()) .WithDescription(builder.ToString())
.WithColour(ColorsList.Green) .WithColour(ColorsList.Green)
.WithFooter(string.Format(Messages.ReminderPosition, memberData.Reminders.Count)) .WithFooter(string.Format(Messages.ReminderPosition, memberData.Reminders.Count + 1))
.Build(); .Build();
var message = await _feedback.SendContextualEmbedAsync(embed.Entity, ct: ct);
return await _feedback.SendContextualEmbedResultAsync(embed, 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();
} }
/// <summary> /// <summary>