public static void AddReminder(ulong user, string name, DateTime time, string desc) { if (string.IsNullOrWhiteSpace(name)) { name = BotUtils.ZeroSpace; } if (string.IsNullOrWhiteSpace(desc)) { desc = BotUtils.ZeroSpace; } ReminderNode node = new ReminderNode(name, desc); string dtime = time.ToString(); if (!Reminders.ContainsKey(user)) { Reminders.Add(user, new Dictionary <string, List <ReminderNode> >()); } if (!Reminders[user].ContainsKey(dtime)) { Reminders[user].Add(dtime, new List <ReminderNode>()); } Reminders[user][dtime].Add(node); SaveReminders(); }
public static async Task RemindUser(ReminderPointer rp) { ReminderNode node = GetReminder(rp); SocketGuildUser user = BotUtils.GetGUser(rp.User); IDMChannel channel = await user.GetOrCreateDMChannelAsync(); await channel.SendMessageAsync(embed : new BasicEmbed("Reminder!", node.Description, node.Name, BotUtils.Kamtro).GetEmbed()); }
public static void EditReminder(ReminderPointer rp, string newName = null, string newDesc = null, string newDate = null) { ReminderNode node = GetReminder(rp); node.Name = newName ?? node.Name; node.Description = newDesc ?? node.Description; if (newDate != null) { Reminders[rp.User][rp.Date].RemoveAt(rp.Index); if (Reminders[rp.User][rp.Date].Count == 0) { Reminders[rp.User].Remove(rp.Date); } Reminders[rp.User].Add(newDate, new List <ReminderNode>()); Reminders[rp.User][newDate].Add(node); } SaveReminders(); }
public override Embed GetEmbed() { EmbedBuilder eb = new EmbedBuilder(); eb.WithTitle("Reminders"); eb.WithColor(BotUtils.Kamtro); switch (PageNum) { case 1: string names = ""; string descs = ""; string dates = ""; for (int i = 0; i < ReminderList.Count; i++) { ReminderPointer rp = ReminderList[i]; ReminderNode node = ReminderManager.GetReminder(rp); names += $"{(CursorPos == i + 1 ? CustomEmotes.CursorAnimated:"")}{MakeBold(node.Name, CursorPos == i + 1)}\n"; descs += MakeBold(BotUtils.ShortenLongString(node.Description, 20), CursorPos == i + 1) + "\n"; dates += MakeBold(GetDateString(rp), CursorPos == i + 1) + "\n"; } if (ReminderList.Count == 0) { eb.AddField("Reminders", "You don't have any reminders set! Click the add reminder button to add one!"); } else { eb.AddField("Name", names, true); eb.AddField("Description", descs, true); eb.AddField("Date M/D/Y", dates, true); } break; case 2: string name, desc, dt; if (CurrentReminder == null) { name = "ERROR"; desc = "Something went wrong! Please contact arcy or carbon!\nTry clicking the back button!"; dt = "NONE"; } else { name = ReminderManager.GetReminder(CurrentReminder).Name; desc = ReminderManager.GetReminder(CurrentReminder).Description; DateTime d = DateTime.Parse(CurrentReminder.Date); TimeZoneNode node = UserDataManager.GetUserData(BotUtils.GetGUser(CurrentReminder.User)).TimeZone; d.AddHours(node.Hour); d.AddMinutes(node.Minute); dt = d.ToString("dd/MM/yyyy") + " at " + d.ToString("hh:mm tt"); } eb.AddField("Name", name); eb.AddField("Time", dt); eb.AddField("Description", desc); break; case 3: eb.WithTitle("Add Reminder"); eb.WithDescription("When adding a reminder, make sure that you add a space in between the time, and the AM/PM if you are using a 12 hour clock. AM/PM are not nessecary in a 24 hour clock.\nDates MUST be in MM/DD/YYYY format. Months are in number form, January is 1 (or 01, single digit numbers can have a single zero in front if you want), December is 12."); break; case 4: eb.WithTitle("Edit Remidner"); string options = $"{(CursorPos == 1 ? CustomEmotes.CursorAnimated : CustomEmotes.CursorBlankSpace)}Edit Name\n"; options += $"{(CursorPos == 2 ? CustomEmotes.CursorAnimated : CustomEmotes.CursorBlankSpace)}Edit Description\n"; options += $"{(CursorPos == 3 ? CustomEmotes.CursorAnimated : CustomEmotes.CursorBlankSpace)}Edit Date/Time"; eb.AddField("Options", options); break; case 5: case 6: case 7: eb.WithTitle("Edit Remidner"); break; } AddEmbedFields(eb); AddMenu(eb); if (ModifySuccess) { eb.AddField("Success", SuccessMessage); ModifySuccess = false; SuccessMessage = BotUtils.ZeroSpace; } if (ErrorHappened) { eb.AddField("ERROR", ErrorMessage); ErrorHappened = false; ErrorMessage = BotUtils.ZeroSpace; } return(eb.Build()); }