using Boyfriend.Data; namespace Boyfriend.Commands; public sealed class RemindCommand : ICommand { public string[] Aliases { get; } = { "remind", "reminder", "remindme", "напомни", "напомнить", "напоминание" }; public Task RunAsync(CommandProcessor cmd, string[] args, string[] cleanArgs) { // TODO: actually make this good var remindIn = CommandProcessor.GetTimeSpan(args, 0); if (remindIn.TotalSeconds < 1) { cmd.Reply(Messages.InvalidRemindIn, ReplyEmojis.InvalidArgument); return Task.CompletedTask; } var reminderText = cmd.GetRemaining(cleanArgs, 1, "ReminderText"); if (reminderText is not null) { var reminderOffset = DateTimeOffset.UtcNow.Add(remindIn); GuildData.Get(cmd.Context.Guild).MemberData[cmd.Context.User.Id].Reminders.Add( new Reminder { RemindAt = reminderOffset, ReminderText = reminderText, ReminderChannel = cmd.Context.Channel.Id }); cmd.ConfigWriteScheduled = true; var feedback = string.Format(Messages.FeedbackReminderAdded, reminderOffset.ToUnixTimeSeconds().ToString()); cmd.Reply(feedback, ReplyEmojis.Reminder); } return Task.CompletedTask; } }