Example #1
0
            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));
            }
Example #2
0
            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;
            }