From 3d3db6d5e1e81a5d52ae04d95757dccf11597efb Mon Sep 17 00:00:00 2001 From: Noi Date: Wed, 22 Jul 2020 16:58:38 -0700 Subject: [PATCH] Update remaining handlers to not use guild cache --- UserInterface/HelpInfoCommands.cs | 13 +++++++------ UserInterface/UserCommands.cs | 25 ++++++++++++------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/UserInterface/HelpInfoCommands.cs b/UserInterface/HelpInfoCommands.cs index 72d655e..9499048 100644 --- a/UserInterface/HelpInfoCommands.cs +++ b/UserInterface/HelpInfoCommands.cs @@ -1,4 +1,5 @@ -using Discord; +using BirthdayBot.Data; +using Discord; using Discord.WebSocket; using System.Collections.Generic; using System.Text; @@ -89,13 +90,13 @@ namespace BirthdayBot.UserInterface return (helpRegular.Build(), helpConfig.Build()); } - private async Task CmdHelp(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdHelp(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) => await reqChannel.SendMessageAsync(embed: _helpEmbed); - private async Task CmdHelpConfig(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdHelpConfig(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) => await reqChannel.SendMessageAsync(embed: _helpConfigEmbed); - private async Task CmdHelpTzdata(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdHelpTzdata(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) { const string tzhelp = "You may specify a time zone in order to have your birthday recognized with respect to your local time. " + "This bot only accepts zone names from the IANA Time Zone Database (a.k.a. Olson Database).\n\n" @@ -110,7 +111,7 @@ namespace BirthdayBot.UserInterface await reqChannel.SendMessageAsync(embed: embed.Build()); } - private async Task CmdHelpMessage(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdHelpMessage(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) { const string msghelp = "The `message` and `messagepl` subcommands allow for editing the message sent into the announcement " + "channel (defined with `{0}config channel`). This feature is separated across two commands:\n" @@ -136,7 +137,7 @@ namespace BirthdayBot.UserInterface await reqChannel.SendMessageAsync(embed: embed.Build()); } - private async Task CmdInfo(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdInfo(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) { var strStats = new StringBuilder(); var asmnm = System.Reflection.Assembly.GetExecutingAssembly().GetName(); diff --git a/UserInterface/UserCommands.cs b/UserInterface/UserCommands.cs index 0753774..3bc9885 100644 --- a/UserInterface/UserCommands.cs +++ b/UserInterface/UserCommands.cs @@ -1,7 +1,7 @@ -using Discord.WebSocket; +using BirthdayBot.Data; +using Discord.WebSocket; using System; using System.Collections.Generic; -using System.Linq; using System.Text.RegularExpressions; using System.Threading.Tasks; @@ -111,7 +111,7 @@ namespace BirthdayBot.UserInterface new CommandDocumentation(new string[] { "remove" }, "Removes your birthday information from this bot.", null); #endregion - private async Task CmdSet(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdSet(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) { // Requires one parameter. Optionally two. if (param.Length < 2 || param.Length > 3) @@ -140,9 +140,9 @@ namespace BirthdayBot.UserInterface bool known; // Extra detail: Bot's response changes if the user was previously unknown. try { - var user = Instance.GuildCache[reqChannel.Guild.Id].GetUser(reqUser.Id); + var user = await GuildUserConfiguration.LoadAsync(gconf.GuildId, reqUser.Id); known = user.IsKnown; - await user.UpdateAsync(bmonth, bday, btz, BotConfig.DatabaseSettings); + await user.UpdateAsync(bmonth, bday, btz); } catch (Exception ex) { @@ -161,7 +161,7 @@ namespace BirthdayBot.UserInterface } } - private async Task CmdZone(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdZone(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) { if (param.Length != 2) { @@ -169,7 +169,7 @@ namespace BirthdayBot.UserInterface return; } - var user = Instance.GuildCache[reqChannel.Guild.Id].GetUser(reqUser.Id); + var user = await GuildUserConfiguration.LoadAsync(gconf.GuildId, reqUser.Id); if (!user.IsKnown) { await reqChannel.SendMessageAsync(":x: You may only update your time zone when you have a birthday registered." @@ -187,12 +187,12 @@ namespace BirthdayBot.UserInterface reqChannel.SendMessageAsync(ex.Message, embed: DocZone.UsageEmbed).Wait(); return; } - await user.UpdateAsync(user.BirthMonth, user.BirthDay, btz, BotConfig.DatabaseSettings); + await user.UpdateAsync(user.BirthMonth, user.BirthDay, btz); await reqChannel.SendMessageAsync($":white_check_mark: Your time zone has been updated to **{btz}**."); } - private async Task CmdRemove(string[] param, SocketTextChannel reqChannel, SocketGuildUser reqUser) + private async Task CmdRemove(string[] param, GuildConfiguration gconf, SocketTextChannel reqChannel, SocketGuildUser reqUser) { // Parameter count check if (param.Length != 1) @@ -203,10 +203,9 @@ namespace BirthdayBot.UserInterface // Extra detail: Send a notification if the user isn't actually known by the bot. bool known; - var g = Instance.GuildCache[reqChannel.Guild.Id]; - known = g.GetUser(reqUser.Id).IsKnown; - // Delete database and cache entry - await g.DeleteUserAsync(reqUser.Id); + var u = await GuildUserConfiguration.LoadAsync(gconf.GuildId, reqUser.Id); + known = u.IsKnown; + await u.DeleteAsync(); if (!known) { await reqChannel.SendMessageAsync(":white_check_mark: This bot already does not contain your information.");