From f552e03e244b5db3752aa6ca84147f36e4896776 Mon Sep 17 00:00:00 2001 From: Kwoth Date: Thu, 25 Aug 2016 16:17:21 +0200 Subject: [PATCH] Added a lot of logging to find the delays --- .../Commands/ServerGreetCommands.cs | 19 ++++++++++++++++--- .../Services/Database/Models/GuildConfig.cs | 2 +- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/NadekoBot/Modules/Administration/Commands/ServerGreetCommands.cs b/src/NadekoBot/Modules/Administration/Commands/ServerGreetCommands.cs index fa107808..a457b4b7 100644 --- a/src/NadekoBot/Modules/Administration/Commands/ServerGreetCommands.cs +++ b/src/NadekoBot/Modules/Administration/Commands/ServerGreetCommands.cs @@ -4,6 +4,7 @@ using NadekoBot.Attributes; using NadekoBot.Classes; using NadekoBot.Services; using NadekoBot.Services.Database.Models; +using NLog; using System.Collections.Concurrent; using System.Linq; using System.Threading.Tasks; @@ -16,24 +17,28 @@ namespace NadekoBot.Modules.Administration public class ServerGreetCommands { public static long Greeted = 0; + private Logger _log; public ServerGreetCommands() { NadekoBot.Client.UserJoined += UserJoined; NadekoBot.Client.UserLeft += UserLeft; + _log = LogManager.GetCurrentClassLogger(); } private async Task UserLeft(IGuildUser user) { + _log.Info("Left: User Left"); GuildConfig conf; using (var uow = DbHandler.UnitOfWork()) { conf = uow.GuildConfigs.For(user.Guild.Id); } + _log.Info("Left: Got unit of work"); if (!conf.SendChannelByeMessage) return; var channel = (await user.Guild.GetTextChannelsAsync()).SingleOrDefault(c => c.Id == conf.ByeMessageChannelId); - + _log.Info("Left: Found channel"); if (channel == null) //maybe warn the server owner that the channel is missing return; @@ -41,37 +46,45 @@ namespace NadekoBot.Modules.Administration if (string.IsNullOrWhiteSpace(msg)) return; + _log.Info("Left: Sending"); var toDelete = await channel.SendMessageAsync(msg).ConfigureAwait(false); if (conf.AutoDeleteByeMessages) { + _log.Info("Left: Sent, waiting for delete"); await Task.Delay(conf.AutoDeleteGreetMessagesTimer * 1000).ConfigureAwait(false); // 5 minutes + _log.Info("Left: Deleted"); await toDelete.DeleteAsync().ConfigureAwait(false); } } private async Task UserJoined(IGuildUser user) { + _log.Info("Joined: User joined"); GuildConfig conf; using (var uow = DbHandler.UnitOfWork()) { conf = uow.GuildConfigs.For(user.Guild.Id); } + _log.Info("Joined: Got unit of work"); if (conf.SendChannelGreetMessage) { var channel = (await user.Guild.GetTextChannelsAsync()).SingleOrDefault(c => c.Id == conf.GreetMessageChannelId); - + _log.Info("Joined: Found required channel"); if (channel != null) //maybe warn the server owner that the channel is missing { - var msg = conf.ChannelGreetMessageText.Replace("%user%", "**" + user.Username + "**"); if (!string.IsNullOrWhiteSpace(msg)) { + _log.Info("Joined: Sending message"); var toDelete = await channel.SendMessageAsync(msg).ConfigureAwait(false); + _log.Info("Joined: Message sent"); if (conf.AutoDeleteGreetMessages) { + _log.Info("Joined: Waiting to delete"); await Task.Delay(conf.AutoDeleteGreetMessagesTimer * 1000).ConfigureAwait(false); // 5 minutes await toDelete.DeleteAsync().ConfigureAwait(false); + _log.Info("Joined: Deleted"); } } } diff --git a/src/NadekoBot/Services/Database/Models/GuildConfig.cs b/src/NadekoBot/Services/Database/Models/GuildConfig.cs index 32d8ea23..c872d761 100644 --- a/src/NadekoBot/Services/Database/Models/GuildConfig.cs +++ b/src/NadekoBot/Services/Database/Models/GuildConfig.cs @@ -26,7 +26,7 @@ namespace NadekoBot.Services.Database.Models public string ChannelGreetMessageText { get; set; } = "Welcome to the %server% server, %user%!"; public bool SendChannelByeMessage { get; set; } - public string ChannelByeMessageText { get; set; } = "Welcome to the %server% server, %user%!"; + public string ChannelByeMessageText { get; set; } = "%user% has left!"; } }