Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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);
            }
        }