From 6e2dc48b3649ae244f199b83575b5d8edad0d8ba Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 22:08:29 +0100 Subject: [PATCH 01/19] add events module placeholder --- wow2.Bot/Data/GuildData.cs | 3 ++ wow2.Bot/Modules/Events/EventsModule.cs | 41 +++++++++++++++++++ wow2.Bot/Modules/Events/EventsModuleConfig.cs | 6 +++ 3 files changed, 50 insertions(+) create mode 100644 wow2.Bot/Modules/Events/EventsModule.cs create mode 100644 wow2.Bot/Modules/Events/EventsModuleConfig.cs diff --git a/wow2.Bot/Data/GuildData.cs b/wow2.Bot/Data/GuildData.cs index 4eb273b3..9aafb6d2 100644 --- a/wow2.Bot/Data/GuildData.cs +++ b/wow2.Bot/Data/GuildData.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Text.Json.Serialization; +using wow2.Bot.Modules.Events; using wow2.Bot.Modules.Games; using wow2.Bot.Modules.Keywords; using wow2.Bot.Modules.Main; @@ -41,5 +42,7 @@ public class GuildData public YouTubeModuleConfig YouTube { get; set; } = new(); public TimersModuleConfig Timers { get; set; } = new(); + + public EventsModuleConfig Events { get; set; } = new(); } } \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/EventsModule.cs b/wow2.Bot/Modules/Events/EventsModule.cs new file mode 100644 index 00000000..737e488f --- /dev/null +++ b/wow2.Bot/Modules/Events/EventsModule.cs @@ -0,0 +1,41 @@ +using System; +using System.Threading.Tasks; +using Discord.Commands; +using Discord.WebSocket; +using wow2.Bot.Data; + +namespace wow2.Bot.Modules.Events +{ + [Name("Events")] + [Group("events")] + [Alias("event")] + [Summary("Create and organise events for you and your friends.")] + public class EventsModule : Module + { + private EventsModuleConfig Config => DataManager.AllGuildData[Context.Guild.Id].Events; + + [Command("new")] + [Alias("start", "create", "add")] + [Summary("Create a new event.")] + public async Task NewAsync() + { + throw new NotImplementedException(); + } + + [Command("delete")] + [Alias("remove", "stop")] + [Summary("Delete an upcoming event.")] + public async Task DeleteAsync() + { + throw new NotImplementedException(); + } + + [Command("set-announcements-channel")] + [Alias("set-channel", "announcements-channel", "channel")] + [Summary("Sets the channel that event notifications will be sent to.")] + public async Task SetAnnouncementsChannelAsync(SocketTextChannel channel) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs new file mode 100644 index 00000000..d7d86dc2 --- /dev/null +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -0,0 +1,6 @@ +namespace wow2.Bot.Modules.Events +{ + public class EventsModuleConfig + { + } +} \ No newline at end of file From db8b957b55bcdc962283e242f8d1b83ab863b88f Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 22:12:29 +0100 Subject: [PATCH 02/19] implement set-announcements-channel --- wow2.Bot/Modules/Events/EventsModule.cs | 7 ++++++- wow2.Bot/Modules/Events/EventsModuleConfig.cs | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/wow2.Bot/Modules/Events/EventsModule.cs b/wow2.Bot/Modules/Events/EventsModule.cs index 737e488f..a51e1058 100644 --- a/wow2.Bot/Modules/Events/EventsModule.cs +++ b/wow2.Bot/Modules/Events/EventsModule.cs @@ -3,6 +3,7 @@ using Discord.Commands; using Discord.WebSocket; using wow2.Bot.Data; +using wow2.Bot.Verbose.Messages; namespace wow2.Bot.Modules.Events { @@ -35,7 +36,11 @@ public async Task DeleteAsync() [Summary("Sets the channel that event notifications will be sent to.")] public async Task SetAnnouncementsChannelAsync(SocketTextChannel channel) { - throw new NotImplementedException(); + Config.AnnouncementsChannelId = channel.Id; + await DataManager.SaveGuildDataToFileAsync(Context.Guild.Id); + + await new SuccessMessage($"You'll get notified about events in {channel.Mention}") + .SendAsync(Context.Channel); } } } \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs index d7d86dc2..8aee81e0 100644 --- a/wow2.Bot/Modules/Events/EventsModuleConfig.cs +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -2,5 +2,6 @@ namespace wow2.Bot.Modules.Events { public class EventsModuleConfig { + public ulong AnnouncementsChannelId { get; set; } } } \ No newline at end of file From 83c4c44ef7c1d035fb79af23565c705914c0e616 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 22:55:05 +0100 Subject: [PATCH 03/19] add datetimeselectormessage placeholder --- COMMANDS.md | 11 ++- wow2.Bot/Modules/Dev/Tests.cs | 8 ++ .../Modules/Events/DateTimeSelectorMessage.cs | 76 +++++++++++++++++++ wow2.Bot/Modules/Events/EventsModuleConfig.cs | 4 + 4 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs diff --git a/COMMANDS.md b/COMMANDS.md index 2b9d96bd..bc5c0c19 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -1,4 +1,4 @@ -# List of commands (74 total) +# List of commands (77 total) ## Main (7) Stuff to do with the bot and other random stuff. @@ -124,6 +124,15 @@ For having a bit of fun. |`!wow games verbal-memory`|Try remember as many words as you can.| |`!wow games verbal-memory-leaderboard [optional:PAGE]`|Shows the leaderboard for the counting game.| +## Events (3) +Create and organise events for you and your friends. + +|Command|Summary| +|---|---| +|`!wow events new`|Create a new event.| +|`!wow events delete`|Delete an upcoming event.| +|`!wow events set-announcements-channel [CHANNEL]`|Sets the channel that event notifications will be sent to.| + ## Developer (10) Boring stuff for developers. diff --git a/wow2.Bot/Modules/Dev/Tests.cs b/wow2.Bot/Modules/Dev/Tests.cs index a96c11e9..25ca7c24 100644 --- a/wow2.Bot/Modules/Dev/Tests.cs +++ b/wow2.Bot/Modules/Dev/Tests.cs @@ -6,6 +6,7 @@ using Discord; using Discord.Commands; using wow2.Bot.Data; +using wow2.Bot.Modules.Events; using wow2.Bot.Modules.Keywords; using wow2.Bot.Modules.Main; using wow2.Bot.Modules.Voice; @@ -73,6 +74,13 @@ public static async Task QuestionMessageTest(SocketCommandContext context) .SendAsync(context.Channel); } + [Test("date-time-message")] + public static async Task DateTimeMessageTeset(SocketCommandContext context) + { + await new DateTimeSelectorMessage("This is a description.") + .SendAsync(context.Channel); + } + [Test("aliases")] public static async Task AliasesTest(SocketCommandContext context) { diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs new file mode 100644 index 00000000..bc55bcba --- /dev/null +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -0,0 +1,76 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Discord; +using Discord.WebSocket; +using wow2.Bot.Data; +using wow2.Bot.Extensions; +using wow2.Bot.Verbose.Messages; + +namespace wow2.Bot.Modules.Events +{ + public class DateTimeSelectorMessage : Message + { + public const string ConfirmChar = "✅"; + + public DateTimeSelectorMessage(string description = "Select a date and time.") + { + EmbedBuilder = new EmbedBuilder() + { + Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {description}", + Color = new Color(0x9b59b6), + }; + } + + public static IReadOnlyDictionary MessageEmotes { get; } = new Dictionary() + { + { new Emoji("⏫"), TimeSpan.FromDays(7) }, + { new Emoji("⏬"), TimeSpan.FromDays(-7) }, + { new Emoji("🔼"), TimeSpan.FromDays(1) }, + { new Emoji("🔽"), TimeSpan.FromDays(-1) }, + { new Emoji("⏩"), TimeSpan.FromHours(1) }, + { new Emoji("⏪"), TimeSpan.FromHours(-1) }, + { new Emoji("▶"), TimeSpan.FromMinutes(10) }, + { new Emoji("◀"), TimeSpan.FromMinutes(-10) }, + }; + + public static async Task ActOnReactionAsync(SocketReaction reaction) + { + EventsModuleConfig config = DataManager.AllGuildData[reaction.Channel.GetGuild().Id].Events; + DateTimeSelectorMessage message = config.DateTimeSelectorMessages.Find(m => m.SentMessage.Id == reaction.MessageId); + + if (message == null) + return false; + + if (reaction.Emote.Name == ConfirmChar) + { + config.DateTimeSelectorMessages.Remove(message); + await message.SentMessage.RemoveAllReactionsAsync(); + return true; + } + else if (MessageEmotes.Any(p => p.Key.Name == reaction.Emote.Name)) + { + await message.SentMessage.RemoveReactionAsync(reaction.Emote, reaction.User.Value); + return true; + } + else + { + return false; + } + } + + public async override Task SendAsync(IMessageChannel channel) + { + IUserMessage message = await base.SendAsync(channel); + List dateTimeSelectorMessages = DataManager + .AllGuildData[message.GetGuild().Id].Events.DateTimeSelectorMessages; + + dateTimeSelectorMessages.Truncate(12); + dateTimeSelectorMessages.Add(this); + + await message.AddReactionsAsync(MessageEmotes.Keys.ToArray()); + return message; + } + } +} \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs index 8aee81e0..bdc8c314 100644 --- a/wow2.Bot/Modules/Events/EventsModuleConfig.cs +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -1,7 +1,11 @@ +using System.Collections.Generic; + namespace wow2.Bot.Modules.Events { public class EventsModuleConfig { public ulong AnnouncementsChannelId { get; set; } + + public List DateTimeSelectorMessages { get; set; } = new(); } } \ No newline at end of file From 155f3954059295c300be07f02761dc9d2975a5d7 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 22:57:30 +0100 Subject: [PATCH 04/19] call reactionadded handler --- wow2.Bot/BotService.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wow2.Bot/BotService.cs b/wow2.Bot/BotService.cs index 9b705b27..a9cc89a6 100644 --- a/wow2.Bot/BotService.cs +++ b/wow2.Bot/BotService.cs @@ -14,6 +14,7 @@ using wow2.Bot.Data; using wow2.Bot.Extensions; using wow2.Bot.Modules; +using wow2.Bot.Modules.Events; using wow2.Bot.Modules.Games.Counting; using wow2.Bot.Modules.Games.VerbalMemory; using wow2.Bot.Modules.Keywords; @@ -207,7 +208,10 @@ public static async Task ReactionAddedAsync(Cacheable cache { if (!await ResponseMessage.ActOnReactionAddedAsync(reaction)) { - await QuestionMessage.ActOnReactionAsync(reaction); + if (!await QuestionMessage.ActOnReactionAsync(reaction)) + { + await DateTimeSelectorMessage.ActOnReactionAsync(reaction); + } } } } From 4a582bab9601bebf9ece10e3add14b1ddcb6d93f Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 22:58:32 +0100 Subject: [PATCH 05/19] add confirm emote --- wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs index bc55bcba..926f8aae 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -69,7 +69,9 @@ public async override Task SendAsync(IMessageChannel channel) dateTimeSelectorMessages.Truncate(12); dateTimeSelectorMessages.Add(this); - await message.AddReactionsAsync(MessageEmotes.Keys.ToArray()); + await message.AddReactionsAsync( + MessageEmotes.Keys.Append(new Emoji(ConfirmChar)).ToArray()); + return message; } } From 67127c95f8dda487ed7e64eaa5b1369df1465ae2 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 23:16:00 +0100 Subject: [PATCH 06/19] update datetime property on emote added --- .../Modules/Events/DateTimeSelectorMessage.cs | 38 +++++++++++++------ wow2.Bot/Modules/Events/EventsModuleConfig.cs | 2 + 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs index 926f8aae..d16572a2 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -14,16 +14,7 @@ public class DateTimeSelectorMessage : Message { public const string ConfirmChar = "✅"; - public DateTimeSelectorMessage(string description = "Select a date and time.") - { - EmbedBuilder = new EmbedBuilder() - { - Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {description}", - Color = new Color(0x9b59b6), - }; - } - - public static IReadOnlyDictionary MessageEmotes { get; } = new Dictionary() + public static readonly IReadOnlyDictionary DateTimeModifierEmotes = new Dictionary() { { new Emoji("⏫"), TimeSpan.FromDays(7) }, { new Emoji("⏬"), TimeSpan.FromDays(-7) }, @@ -35,6 +26,16 @@ public DateTimeSelectorMessage(string description = "Select a date and time.") { new Emoji("◀"), TimeSpan.FromMinutes(-10) }, }; + public DateTimeSelectorMessage(string description = "Select a date and time.") + { + Description = description; + _ = UpdateMessageAsync(); + } + + public DateTime DateTime { get; set; } = DateTime.Now; + + private string Description { get; } + public static async Task ActOnReactionAsync(SocketReaction reaction) { EventsModuleConfig config = DataManager.AllGuildData[reaction.Channel.GetGuild().Id].Events; @@ -49,9 +50,11 @@ public static async Task ActOnReactionAsync(SocketReaction reaction) await message.SentMessage.RemoveAllReactionsAsync(); return true; } - else if (MessageEmotes.Any(p => p.Key.Name == reaction.Emote.Name)) + else if (DateTimeModifierEmotes.Any(p => p.Key.Name == reaction.Emote.Name)) { await message.SentMessage.RemoveReactionAsync(reaction.Emote, reaction.User.Value); + message.DateTime += DateTimeModifierEmotes[reaction.Emote]; + await message.UpdateMessageAsync(); return true; } else @@ -70,9 +73,20 @@ public async override Task SendAsync(IMessageChannel channel) dateTimeSelectorMessages.Add(this); await message.AddReactionsAsync( - MessageEmotes.Keys.Append(new Emoji(ConfirmChar)).ToArray()); + DateTimeModifierEmotes.Keys.Append(new Emoji(ConfirmChar)).ToArray()); return message; } + + private async Task UpdateMessageAsync() + { + EmbedBuilder = new EmbedBuilder() + { + Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {Description}\nCurrently set to: `{DateTime}`", + Color = new Color(0x9b59b6), + }; + + await SentMessage?.ModifyAsync(m => m.Embed = Embed); + } } } \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs index bdc8c314..a96a9cc1 100644 --- a/wow2.Bot/Modules/Events/EventsModuleConfig.cs +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Text.Json.Serialization; namespace wow2.Bot.Modules.Events { @@ -6,6 +7,7 @@ public class EventsModuleConfig { public ulong AnnouncementsChannelId { get; set; } + [JsonIgnore] public List DateTimeSelectorMessages { get; set; } = new(); } } \ No newline at end of file From 815dcdb7814e7056103910d9eb370fee8977070d Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 23:22:36 +0100 Subject: [PATCH 07/19] invoke confirm function --- wow2.Bot/Modules/Dev/Tests.cs | 5 +++-- wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/wow2.Bot/Modules/Dev/Tests.cs b/wow2.Bot/Modules/Dev/Tests.cs index 25ca7c24..8265d460 100644 --- a/wow2.Bot/Modules/Dev/Tests.cs +++ b/wow2.Bot/Modules/Dev/Tests.cs @@ -77,8 +77,9 @@ public static async Task QuestionMessageTest(SocketCommandContext context) [Test("date-time-message")] public static async Task DateTimeMessageTeset(SocketCommandContext context) { - await new DateTimeSelectorMessage("This is a description.") - .SendAsync(context.Channel); + await new DateTimeSelectorMessage( + (d) => context.Channel.SendMessageAsync($"DateTime: {d}")) + .SendAsync(context.Channel); } [Test("aliases")] diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs index d16572a2..96ad79a8 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -26,9 +26,10 @@ public class DateTimeSelectorMessage : Message { new Emoji("◀"), TimeSpan.FromMinutes(-10) }, }; - public DateTimeSelectorMessage(string description = "Select a date and time.") + public DateTimeSelectorMessage(Func confirmFunc, string description = "Select a date and time.") { Description = description; + ConfirmFunc = confirmFunc; _ = UpdateMessageAsync(); } @@ -36,6 +37,8 @@ public DateTimeSelectorMessage(string description = "Select a date and time.") private string Description { get; } + private Func ConfirmFunc { get; } + public static async Task ActOnReactionAsync(SocketReaction reaction) { EventsModuleConfig config = DataManager.AllGuildData[reaction.Channel.GetGuild().Id].Events; @@ -48,6 +51,7 @@ public static async Task ActOnReactionAsync(SocketReaction reaction) { config.DateTimeSelectorMessages.Remove(message); await message.SentMessage.RemoveAllReactionsAsync(); + await message.ConfirmFunc.Invoke(message.DateTime); return true; } else if (DateTimeModifierEmotes.Any(p => p.Key.Name == reaction.Emote.Name)) @@ -82,8 +86,9 @@ private async Task UpdateMessageAsync() { EmbedBuilder = new EmbedBuilder() { - Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {Description}\nCurrently set to: `{DateTime}`", + Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {Description}\n\nCurrently set to: `{DateTime}`", Color = new Color(0x9b59b6), + Timestamp = DateTime.Now + TimeSpan.FromDays(100), }; await SentMessage?.ModifyAsync(m => m.Embed = Embed); From bb98a09f93a0662168dc3536a2b8f5cf61e14072 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 23:22:49 +0100 Subject: [PATCH 08/19] oops --- wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs index 96ad79a8..d73fb1f8 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -88,7 +88,6 @@ private async Task UpdateMessageAsync() { Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {Description}\n\nCurrently set to: `{DateTime}`", Color = new Color(0x9b59b6), - Timestamp = DateTime.Now + TimeSpan.FromDays(100), }; await SentMessage?.ModifyAsync(m => m.Embed = Embed); From 73e8a43e55280f2dced9cdb2230c1200913ca8de Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 23:25:17 +0100 Subject: [PATCH 09/19] use footer instead of desc --- wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs index d73fb1f8..a81feda8 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -86,7 +86,11 @@ private async Task UpdateMessageAsync() { EmbedBuilder = new EmbedBuilder() { - Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {Description}\n\nCurrently set to: `{DateTime}`", + Footer = new EmbedFooterBuilder() + { + Text = $"Currently set to: {DateTime}", + }, + Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {Description}", Color = new Color(0x9b59b6), }; From 034150f951f194afe7e475116e6badd1f0159f4e Mon Sep 17 00:00:00 2001 From: Rednir Date: Sat, 3 Jul 2021 23:29:30 +0100 Subject: [PATCH 10/19] add loading screen --- wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs index a81feda8..bc26a9cd 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -28,9 +28,13 @@ public class DateTimeSelectorMessage : Message public DateTimeSelectorMessage(Func confirmFunc, string description = "Select a date and time.") { + EmbedBuilder = new EmbedBuilder() + { + Description = "Give me a second to add reactions...", + Color = Color.LightGrey, + }; Description = description; ConfirmFunc = confirmFunc; - _ = UpdateMessageAsync(); } public DateTime DateTime { get; set; } = DateTime.Now; @@ -79,6 +83,8 @@ public async override Task SendAsync(IMessageChannel channel) await message.AddReactionsAsync( DateTimeModifierEmotes.Keys.Append(new Emoji(ConfirmChar)).ToArray()); + await UpdateMessageAsync(); + return message; } From 8c4bb4ee83368c3e20ce480802e718aa6ea179eb Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 00:03:08 +0100 Subject: [PATCH 11/19] make date time picker message fancy --- Assets/datetimemessagehelp.png | Bin 0 -> 132354 bytes Assets/datetimemessagehelp.svg | 702 ++++++++++++++++++ .../Modules/Events/DateTimeSelectorMessage.cs | 7 +- 3 files changed, 704 insertions(+), 5 deletions(-) create mode 100644 Assets/datetimemessagehelp.png create mode 100644 Assets/datetimemessagehelp.svg diff --git a/Assets/datetimemessagehelp.png b/Assets/datetimemessagehelp.png new file mode 100644 index 0000000000000000000000000000000000000000..069e6ab03979600e58d203a02e62fb2653e0b4c7 GIT binary patch literal 132354 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

Cb!=vvvw-!_Q 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 M07*qoM6N<$g1)muLI3~& literal 0 HcmV?d00001 diff --git a/Assets/datetimemessagehelp.svg b/Assets/datetimemessagehelp.svg new file mode 100644 index 00000000..5dc576bc --- /dev/null +++ b/Assets/datetimemessagehelp.svg @@ -0,0 +1,702 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 week + -1 week + +1 day + -1 day + +1 hour + -1 hour + +1 min + -1 min + + + diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs index bc26a9cd..bd70ec08 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs @@ -92,11 +92,8 @@ private async Task UpdateMessageAsync() { EmbedBuilder = new EmbedBuilder() { - Footer = new EmbedFooterBuilder() - { - Text = $"Currently set to: {DateTime}", - }, - Description = $"{new Emoji($"<:wowinfo:{QuestionEmoteId}>")} {Description}", + Description = $"{new Emoji($"<:wowquestion:{QuestionEmoteId}>")} {Description}\n`{DateTime}`", + ImageUrl = "https://cdn.discordapp.com/attachments/680921268081524954/861017801065365524/datetimemessagehelp.png", Color = new Color(0x9b59b6), }; From b665c6fc99438f8e032f3476d063323219b10ea7 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 00:09:08 +0100 Subject: [PATCH 12/19] move date time message out of events module --- wow2.Bot/Data/GuildData.cs | 3 +++ wow2.Bot/Modules/Events/EventsModuleConfig.cs | 4 +--- .../Messages}/DateTimeSelectorMessage.cs | 11 +++++------ 3 files changed, 9 insertions(+), 9 deletions(-) rename wow2.Bot/{Modules/Events => Verbose/Messages}/DateTimeSelectorMessage.cs (88%) diff --git a/wow2.Bot/Data/GuildData.cs b/wow2.Bot/Data/GuildData.cs index 9aafb6d2..9596e8a6 100644 --- a/wow2.Bot/Data/GuildData.cs +++ b/wow2.Bot/Data/GuildData.cs @@ -27,6 +27,9 @@ public class GuildData [JsonIgnore] public List QuestionMessages { get; set; } = new(); + [JsonIgnore] + public List DateTimeSelectorMessages { get; set; } = new(); + public MainModuleConfig Main { get; set; } = new(); public KeywordsModuleConfig Keywords { get; set; } = new(); diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs index a96a9cc1..adea65e3 100644 --- a/wow2.Bot/Modules/Events/EventsModuleConfig.cs +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -1,13 +1,11 @@ using System.Collections.Generic; using System.Text.Json.Serialization; +using wow2.Bot.Verbose.Messages; namespace wow2.Bot.Modules.Events { public class EventsModuleConfig { public ulong AnnouncementsChannelId { get; set; } - - [JsonIgnore] - public List DateTimeSelectorMessages { get; set; } = new(); } } \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs b/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs similarity index 88% rename from wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs rename to wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs index bd70ec08..8159b88b 100644 --- a/wow2.Bot/Modules/Events/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs @@ -6,9 +6,8 @@ using Discord.WebSocket; using wow2.Bot.Data; using wow2.Bot.Extensions; -using wow2.Bot.Verbose.Messages; -namespace wow2.Bot.Modules.Events +namespace wow2.Bot.Verbose.Messages { public class DateTimeSelectorMessage : Message { @@ -45,15 +44,15 @@ public DateTimeSelectorMessage(Func confirmFunc, string descript public static async Task ActOnReactionAsync(SocketReaction reaction) { - EventsModuleConfig config = DataManager.AllGuildData[reaction.Channel.GetGuild().Id].Events; - DateTimeSelectorMessage message = config.DateTimeSelectorMessages.Find(m => m.SentMessage.Id == reaction.MessageId); + GuildData guildData = DataManager.AllGuildData[reaction.Channel.GetGuild().Id]; + DateTimeSelectorMessage message = guildData.DateTimeSelectorMessages.Find(m => m.SentMessage.Id == reaction.MessageId); if (message == null) return false; if (reaction.Emote.Name == ConfirmChar) { - config.DateTimeSelectorMessages.Remove(message); + guildData.DateTimeSelectorMessages.Remove(message); await message.SentMessage.RemoveAllReactionsAsync(); await message.ConfirmFunc.Invoke(message.DateTime); return true; @@ -75,7 +74,7 @@ public async override Task SendAsync(IMessageChannel channel) { IUserMessage message = await base.SendAsync(channel); List dateTimeSelectorMessages = DataManager - .AllGuildData[message.GetGuild().Id].Events.DateTimeSelectorMessages; + .AllGuildData[message.GetGuild().Id].DateTimeSelectorMessages; dateTimeSelectorMessages.Truncate(12); dateTimeSelectorMessages.Add(this); From 08ab3660e1dee7b622cd89700c24c60757fc6327 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 00:14:17 +0100 Subject: [PATCH 13/19] send message on new command --- wow2.Bot/Modules/Events/EventsModule.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/wow2.Bot/Modules/Events/EventsModule.cs b/wow2.Bot/Modules/Events/EventsModule.cs index a51e1058..6a36302e 100644 --- a/wow2.Bot/Modules/Events/EventsModule.cs +++ b/wow2.Bot/Modules/Events/EventsModule.cs @@ -18,9 +18,12 @@ public class EventsModule : Module [Command("new")] [Alias("start", "create", "add")] [Summary("Create a new event.")] - public async Task NewAsync() + public async Task NewAsync([Remainder] string description = "untitled event") { - throw new NotImplementedException(); + await new DateTimeSelectorMessage( + d => Task.CompletedTask, + "Select a date and time for this event.") + .SendAsync(Context.Channel); } [Command("delete")] From fbdd5ee1409ff98a54fe346333205c6fd4d8aaec Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 00:15:38 +0100 Subject: [PATCH 14/19] use github link instead of discord attachment --- wow2.Bot/Modules/Events/EventsModuleConfig.cs | 2 -- wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs index adea65e3..076346d5 100644 --- a/wow2.Bot/Modules/Events/EventsModuleConfig.cs +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -1,6 +1,4 @@ using System.Collections.Generic; -using System.Text.Json.Serialization; -using wow2.Bot.Verbose.Messages; namespace wow2.Bot.Modules.Events { diff --git a/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs b/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs index 8159b88b..c86f83e8 100644 --- a/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs @@ -92,7 +92,7 @@ private async Task UpdateMessageAsync() EmbedBuilder = new EmbedBuilder() { Description = $"{new Emoji($"<:wowquestion:{QuestionEmoteId}>")} {Description}\n`{DateTime}`", - ImageUrl = "https://cdn.discordapp.com/attachments/680921268081524954/861017801065365524/datetimemessagehelp.png", + ImageUrl = "https://github.com/rednir/wow2/blob/master/Assets/datetimemessagehelp.png", Color = new Color(0x9b59b6), }; From 5c7bffae3bdc8459877f772d95ab43c28636b516 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 10:18:17 +0100 Subject: [PATCH 15/19] fix emotes working before loading has finished --- COMMANDS.md | 2 +- wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index bc5c0c19..ef0f594b 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -129,7 +129,7 @@ Create and organise events for you and your friends. |Command|Summary| |---|---| -|`!wow events new`|Create a new event.| +|`!wow events new [optional:DESCRIPTION]`|Create a new event.| |`!wow events delete`|Delete an upcoming event.| |`!wow events set-announcements-channel [CHANNEL]`|Sets the channel that event notifications will be sent to.| diff --git a/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs b/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs index c86f83e8..f0092f8f 100644 --- a/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs +++ b/wow2.Bot/Verbose/Messages/DateTimeSelectorMessage.cs @@ -76,12 +76,11 @@ public async override Task SendAsync(IMessageChannel channel) List dateTimeSelectorMessages = DataManager .AllGuildData[message.GetGuild().Id].DateTimeSelectorMessages; - dateTimeSelectorMessages.Truncate(12); - dateTimeSelectorMessages.Add(this); - await message.AddReactionsAsync( DateTimeModifierEmotes.Keys.Append(new Emoji(ConfirmChar)).ToArray()); + dateTimeSelectorMessages.Truncate(12); + dateTimeSelectorMessages.Add(this); await UpdateMessageAsync(); return message; From 4a7eb18fe52e7fdfa05aedf58c8480ed8ad3e214 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 10:26:01 +0100 Subject: [PATCH 16/19] create event class --- wow2.Bot/Modules/Events/Event.cs | 16 ++++++++++++++++ wow2.Bot/Modules/Events/EventsModuleConfig.cs | 2 ++ 2 files changed, 18 insertions(+) create mode 100644 wow2.Bot/Modules/Events/Event.cs diff --git a/wow2.Bot/Modules/Events/Event.cs b/wow2.Bot/Modules/Events/Event.cs new file mode 100644 index 00000000..113b116a --- /dev/null +++ b/wow2.Bot/Modules/Events/Event.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; + +namespace wow2.Bot.Modules.Events +{ + public class Event + { + public string Description { get; set; } + + public DateTime ForDateTime { get; set; } + + public string CreatedByMention { get; set; } + + public List AttendeeMentions { get; set; } = new(); + } +} \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs index 076346d5..f8974952 100644 --- a/wow2.Bot/Modules/Events/EventsModuleConfig.cs +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -4,6 +4,8 @@ namespace wow2.Bot.Modules.Events { public class EventsModuleConfig { + public List Events { get; set; } = new(); + public ulong AnnouncementsChannelId { get; set; } } } \ No newline at end of file From c9e202cc26c5c0f9fc192cfe4e8133f3a5ffaeea Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 10:51:01 +0100 Subject: [PATCH 17/19] add event message placeholder --- wow2.Bot/Modules/Events/EventMessage.cs | 67 +++++++++++++++++++ wow2.Bot/Modules/Events/EventsModule.cs | 24 ++++++- wow2.Bot/Modules/Events/EventsModuleConfig.cs | 2 + 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 wow2.Bot/Modules/Events/EventMessage.cs diff --git a/wow2.Bot/Modules/Events/EventMessage.cs b/wow2.Bot/Modules/Events/EventMessage.cs new file mode 100644 index 00000000..a2487653 --- /dev/null +++ b/wow2.Bot/Modules/Events/EventMessage.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Discord; +using Discord.WebSocket; +using wow2.Bot.Data; +using wow2.Bot.Extensions; +using wow2.Bot.Verbose.Messages; + +namespace wow2.Bot.Modules.Events +{ + public class EventMessage : Message + { + public static readonly IEmote AttendEmote = new Emoji("👌"); + public static readonly IEmote EditEmote = new Emoji("✏"); + + public EventMessage(Event @event) + { + EmbedBuilder = new EmbedBuilder() + { + Description = @event.Description, + }; + } + + public static async Task ActOnReactionAsync(SocketReaction reaction) + { + EventsModuleConfig config = DataManager.AllGuildData[reaction.Channel.GetGuild().Id].Events; + return false; + //QuestionMessage message = config. + + /*if (message == null) + return false; + + if (reaction.Emote.Name == ConfirmEmote.Name) + { + await message.OnConfirm.Invoke(); + } + else if (reaction.Emote.Name == DenyEmote.Name) + { + await message.OnDeny.Invoke(); + } + else + { + return false; + } + + guildData.QuestionMessages.Remove(message); + await message.SentMessage.RemoveAllReactionsAsync(); + + return true;*/ + } + + public async override Task SendAsync(IMessageChannel channel) + { + IUserMessage message = await base.SendAsync(channel); + List eventMessages = DataManager.AllGuildData[message.GetGuild().Id].Events.EventMessages; + + eventMessages.Truncate(30); + eventMessages.Add(this); + + await message.AddReactionsAsync( + new IEmote[] { AttendEmote, EditEmote }); + + return message; + } + } +} \ No newline at end of file diff --git a/wow2.Bot/Modules/Events/EventsModule.cs b/wow2.Bot/Modules/Events/EventsModule.cs index 6a36302e..3119025f 100644 --- a/wow2.Bot/Modules/Events/EventsModule.cs +++ b/wow2.Bot/Modules/Events/EventsModule.cs @@ -1,8 +1,10 @@ using System; using System.Threading.Tasks; +using Discord; using Discord.Commands; using Discord.WebSocket; using wow2.Bot.Data; +using wow2.Bot.Extensions; using wow2.Bot.Verbose.Messages; namespace wow2.Bot.Modules.Events @@ -20,8 +22,28 @@ public class EventsModule : Module [Summary("Create a new event.")] public async Task NewAsync([Remainder] string description = "untitled event") { + if (Config.AnnouncementsChannelId == default) + { + throw new CommandReturnException( + Context, + $"You can do this be using `{Context.Guild.GetCommandPrefix()} events set-announcements-channel`", + "Set an announcements channel first"); + } + await new DateTimeSelectorMessage( - d => Task.CompletedTask, + async d => + { + var @event = new Event() + { + Description = description, + ForDateTime = d, + CreatedByMention = Context.User.Mention, + }; + + Config.Events.Add(@event); + await new EventMessage(@event) + .SendAsync((IMessageChannel)BotService.Client.GetChannel(Config.AnnouncementsChannelId)); + }, "Select a date and time for this event.") .SendAsync(Context.Channel); } diff --git a/wow2.Bot/Modules/Events/EventsModuleConfig.cs b/wow2.Bot/Modules/Events/EventsModuleConfig.cs index f8974952..4c96b3b2 100644 --- a/wow2.Bot/Modules/Events/EventsModuleConfig.cs +++ b/wow2.Bot/Modules/Events/EventsModuleConfig.cs @@ -6,6 +6,8 @@ public class EventsModuleConfig { public List Events { get; set; } = new(); + public List EventMessages { get; set; } = new(); + public ulong AnnouncementsChannelId { get; set; } } } \ No newline at end of file From d878d5d848e2f0d7b5946abb23b2d066544da226 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 11:20:38 +0100 Subject: [PATCH 18/19] event message acts on reactions --- wow2.Bot/BotService.cs | 5 ++- wow2.Bot/Modules/Events/EventMessage.cs | 56 ++++++++++++++++++------- 2 files changed, 44 insertions(+), 17 deletions(-) diff --git a/wow2.Bot/BotService.cs b/wow2.Bot/BotService.cs index a9cc89a6..7a3cd0ea 100644 --- a/wow2.Bot/BotService.cs +++ b/wow2.Bot/BotService.cs @@ -210,7 +210,10 @@ public static async Task ReactionAddedAsync(Cacheable cache { if (!await QuestionMessage.ActOnReactionAsync(reaction)) { - await DateTimeSelectorMessage.ActOnReactionAsync(reaction); + if (!await DateTimeSelectorMessage.ActOnReactionAsync(reaction)) + { + await EventMessage.ActOnReactionAddedAsync(reaction); + } } } } diff --git a/wow2.Bot/Modules/Events/EventMessage.cs b/wow2.Bot/Modules/Events/EventMessage.cs index a2487653..4ea3cbb3 100644 --- a/wow2.Bot/Modules/Events/EventMessage.cs +++ b/wow2.Bot/Modules/Events/EventMessage.cs @@ -16,42 +16,49 @@ public class EventMessage : Message public EventMessage(Event @event) { - EmbedBuilder = new EmbedBuilder() - { - Description = @event.Description, - }; + Event = @event; } - public static async Task ActOnReactionAsync(SocketReaction reaction) + public Event Event { get; set; } + + public static async Task ActOnReactionAddedAsync(SocketReaction reaction) { EventsModuleConfig config = DataManager.AllGuildData[reaction.Channel.GetGuild().Id].Events; - return false; - //QuestionMessage message = config. + EventMessage message = config.EventMessages.Find(m => m.SentMessage.Id == reaction.MessageId); - /*if (message == null) + if (message == null) return false; - if (reaction.Emote.Name == ConfirmEmote.Name) + if (reaction.Emote.Name == AttendEmote.Name) { - await message.OnConfirm.Invoke(); + message.Event.AttendeeMentions.Add(reaction.User.Value.Mention); + await message.UpdateMessageAsync(); } - else if (reaction.Emote.Name == DenyEmote.Name) + else if (reaction.Emote.Name == EditEmote.Name) { - await message.OnDeny.Invoke(); + IUserMessage sentMessage = await new DateTimeSelectorMessage( + async d => + { + message.Event.ForDateTime = d; + await message.UpdateMessageAsync(); + }, + "Select the new date and time for this event.") + .SendAsync(reaction.Channel); + + await message.SentMessage.RemoveReactionAsync(EditEmote, reaction.User.Value); } else { return false; } - guildData.QuestionMessages.Remove(message); - await message.SentMessage.RemoveAllReactionsAsync(); - - return true;*/ + return true; } public async override Task SendAsync(IMessageChannel channel) { + await UpdateMessageAsync(); + IUserMessage message = await base.SendAsync(channel); List eventMessages = DataManager.AllGuildData[message.GetGuild().Id].Events.EventMessages; @@ -63,5 +70,22 @@ await message.AddReactionsAsync( return message; } + + public async Task UpdateMessageAsync() + { + EmbedBuilder = new EmbedBuilder() + { + Title = $"📋 {Event.Description}", + Description = $"{Event.AttendeeMentions.Count} people are attending on `{Event.ForDateTime}`", + Footer = new EmbedFooterBuilder() + { + Text = $"Want to attend this event? React with {AttendEmote.Name}", + }, + Color = Color.LightGrey, + }; + + if (SentMessage != null) + await SentMessage.ModifyAsync(m => m.Embed = Embed); + } } } \ No newline at end of file From ed4ee08e90576190f0ad6c9e3d00987e0711a0e6 Mon Sep 17 00:00:00 2001 From: Rednir Date: Sun, 4 Jul 2021 11:25:02 +0100 Subject: [PATCH 19/19] add parameterless constructor --- wow2.Bot/Modules/Events/EventMessage.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/wow2.Bot/Modules/Events/EventMessage.cs b/wow2.Bot/Modules/Events/EventMessage.cs index 4ea3cbb3..208db122 100644 --- a/wow2.Bot/Modules/Events/EventMessage.cs +++ b/wow2.Bot/Modules/Events/EventMessage.cs @@ -14,6 +14,10 @@ public class EventMessage : Message public static readonly IEmote AttendEmote = new Emoji("👌"); public static readonly IEmote EditEmote = new Emoji("✏"); + public EventMessage() + { + } + public EventMessage(Event @event) { Event = @event;