public async Task ReminderBase(CommandContext ctx, string action, [RemainingText] string args = @"") { // Check if they have the permissions to call this command. if (await Permissions.HandlePermissionsCheck(ctx)) { switch (action) { case "new": case "add": await ReminderSystem.AddReminder(ctx, args); break; case "remove": case "delete": // Check if this is even a reminder. Reminder possibleReminder = await ReminderSystem.GetReminderFromDatabase(args); if (!possibleReminder.Equals(Reminder.Invalid)) { // It's a reminder. await ReminderSystem.RemoveReminder(ctx, possibleReminder); } else { // It's not a reminder. await GenericResponses.SendGenericCommandError( ctx.Channel, ctx.Member.Mention, "Unable to remove reminder", $"The reminder id `{args}` does not exist..."); } break; case "list": await ReminderSystem.ListReminders(ctx); break; } } }
public async Task RemoveReminder(CommandContext ctx, string reminderId) { if (ctx.Member.GetRole().IsCHOrHigher()) { await ctx.TriggerTypingAsync(); // Cancels: if (!ReminderSystem.IsReminder(reminderId)) { await ctx.Channel.SendMessageAsync( ChatObjects.GetErrMessage(@"That is not a valid Reminder ID...")); return; } Reminder reminderToRemove = ReminderSystem.GetReminderFromId(reminderId); // DEB! DiscordEmbedBuilder deb = new DiscordEmbedBuilder(); DateTimeOffset dto = DateTimeOffset.FromUnixTimeMilliseconds(reminderToRemove.Time); // The reminder's DTO. TimeSpan remainingTime = dto.Subtract(DateTimeOffset.UtcNow); // The remaining time left for the reminder. string originalAuthorMention = String.Format("<@{0}>", reminderToRemove.User); deb.WithTitle(@"Notification Removed"); deb.AddField(@"User", originalAuthorMention); deb.AddField(@"Time", dto.ToString()); deb.AddField(@"Remaining time", String.Format("{0}day {1}hr {2}min {3}sec", remainingTime.Days, remainingTime.Hours, remainingTime.Minutes, remainingTime.Seconds)); deb.AddField(@"Message", reminderToRemove.Text); deb.AddField(@"Notification Identifier", reminderId); deb.WithColor(DiscordColor.LightGray); deb.WithThumbnailUrl(ChatObjects.URL_REMINDER_DELETED); ReminderSystem.RemoveReminder(reminderToRemove); ReminderSystem.Save(); await ctx.Channel.SendMessageAsync(originalAuthorMention, false, deb); } }