static LogCommands() { _client = FaultyBot.Client; _log = LogManager.GetCurrentClassLogger(); using (var uow = DbHandler.UnitOfWork()) { GuildLogSettings = new ConcurrentDictionary <ulong, LogSetting>(FaultyBot.AllGuildConfigs .ToDictionary(g => g.GuildId, g => g.LogSetting)); } timerReference = new Timer(async(state) => { try { var keys = UserPresenceUpdates.Keys.ToList(); await Task.WhenAll(keys.Select(async key => { List <string> messages; if (UserPresenceUpdates.TryRemove(key, out messages)) { try { await key.SendMessageAsync(string.Join(Environment.NewLine, messages)); } catch { } } })); } catch (Exception ex) { _log.Warn(ex); } }, null, TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10)); }
static LogCommands() { _client = NadekoBot.Client; _log = LogManager.GetCurrentClassLogger(); var sw = Stopwatch.StartNew(); using (var uow = DbHandler.UnitOfWork()) { GuildLogSettings = new ConcurrentDictionary <ulong, LogSetting>(NadekoBot.AllGuildConfigs .ToDictionary(g => g.GuildId, g => g.LogSetting)); } timerReference = new Timer(async(state) => { try { var keys = UserPresenceUpdates.Keys.ToList(); await Task.WhenAll(keys.Select(async key => { List <string> messages; if (UserPresenceUpdates.TryRemove(key, out messages)) { try { await key.SendMessageAsync(string.Join(Environment.NewLine, messages)); } catch { } } })); } catch (Exception ex) { _log.Warn(ex); } }, null, TimeSpan.FromSeconds(10), TimeSpan.FromSeconds(10)); sw.Stop(); _log.Debug($"Loaded in {sw.Elapsed.TotalSeconds:F2}s"); //_client.MessageReceived += _client_MessageReceived; _client.MessageUpdated += _client_MessageUpdated; _client.MessageDeleted += _client_MessageDeleted; _client.UserBanned += _client_UserBanned; _client.UserUnbanned += _client_UserUnbanned; _client.UserJoined += _client_UserJoined; _client.UserLeft += _client_UserLeft; _client.UserPresenceUpdated += _client_UserPresenceUpdated; _client.UserVoiceStateUpdated += _client_UserVoiceStateUpdated; _client.UserVoiceStateUpdated += _client_UserVoiceStateUpdated_TTS; _client.UserUpdated += _client_UserUpdated; _client.ChannelCreated += _client_ChannelCreated; _client.ChannelDestroyed += _client_ChannelDestroyed; _client.ChannelUpdated += _client_ChannelUpdated; MuteCommands.UserMuted += MuteCommands_UserMuted; MuteCommands.UserUnmuted += MuteCommands_UserUnmuted; }