示例#1
0
        public UsersManager(BotDataManager botDataManager)
        {
            _logger         = Logging.GetLogger <UsersManager>();
            _botDataManager = botDataManager;

            OnlineUsers   = new List <User>();
            UserBlacklist = _botDataManager.LoadUsersBlacklist();
        }
示例#2
0
        public CommandsHandler(UsersManager usersManager, BotDataManager botDataManager, ExperienceManager experienceManager, PointsManager pointsManager)
        {
            _logger           = Logging.GetLogger <CommandsHandler>();
            _followersManager = new FollowersManager();

            _usersManager      = usersManager;
            _botDataManager    = botDataManager;
            _experienceManager = experienceManager;
            _pointsManager     = pointsManager;

            InitializeCommands();
        }
示例#3
0
        /// <summary>
        /// Manages point awarding and timer ticking
        /// </summary>
        /// <param name="botDataManager">Bot data manager instance to get access to bot information</param>
        /// <param name="usersManager">User manager instance to get access to user information</param>
        /// <param name="autostart">Bool value if the time should start immediately</param>
        internal PointsManager(BotDataManager botDataManager, UsersManager usersManager, bool autostart = false)
        {
            _logger           = Logging.GetLogger <PointsManager>();
            _usersManager     = usersManager;
            _currencySettings = botDataManager.CurrencySettings;

            this.IsTimerRunning = false;

            if (autostart)
            {
                StartPointsTimer();
            }
            else
            {
                _timer = new Timer(AwardPoints_TimerTick, null, Timeout.Infinite, this.TimerIntervalMs);
            }
        }
示例#4
0
        /// <summary>
        /// Experiences class manages exp awarding and timer ticking
        /// </summary>
        /// <param name="usersManager">User manager instance to get access to user information</param>
        /// <param name="botDataManager">Bot data manager instance to get access to bot information</param>
        /// <param name="autostart">Bool value if timer should start immediately</param>
        internal ExperienceManager(BotDataManager botDataManager, UsersManager usersManager, bool autostart = false)
        {
            _logger = Logging.GetLogger <ExperienceManager>();

            _usersManager       = usersManager;
            _botDataManager     = botDataManager;
            _experienceSettings = _botDataManager.ExperienceSettings;
            this.TimerRunning   = false;

            RankList = _botDataManager.LoadRanks();

            if (autostart)
            {
                StartExperienceTimer();
            }
            else
            {
                _timer = new Timer(AwardExperience_TimerTick, null, Timeout.Infinite, this.ExperienceTickIntervalMs);
            }
        }
示例#5
0
        public BotClient()
        {
            _logger = Logging.GetLogger <BotClient>();

            _botDataManager = new BotDataManager();
            _usersManager   = new UsersManager(_botDataManager);
            throttler       = new MessageThrottling(_botDataManager);

            chatMessagePrefix = string.Format(":{0}!{0}@{0}.tmi.twitch.tv PRIVMSG #{1} :", _botDataManager.Login.BotName, _botDataManager.Login.Channel);
            _pointsManager    = new PointsManager(_botDataManager, _usersManager, false);

            _experienceManager = new ExperienceManager(_botDataManager, _usersManager, false);
            _commandsHandler   = new CommandsHandler(_usersManager, _botDataManager, _experienceManager, _pointsManager);
            _commandsHandler.OnCommandResponse += CommandsHandler_OnCommandResponse;

            this.readingTimer = new Timer(Reader_Timer_Tick, null, Timeout.Infinite, 200);
            this.uptimeTimer  = new Timer(Uptime_Timer_Tick, null, Timeout.Infinite, 1000);
            this.uptime       = new Stopwatch();

            SetupEvents();
            // Task.Run(() => TestAPI()).Wait();
        }