예제 #1
0
        /// <summary>
        /// initialize and create service
        /// </summary>
        /// <param name="client"></param>
        /// <param name="credentials"></param>
        /// <returns>
        /// return an async task, which can be awaited
        /// </returns>
        public static async Task InitializeHandler(DiscordSocketClient client, BotCredentials credentials, WeatherApiHandler weatherApiHandler, ILog logger)
        {
            MoodHandlerService.client            = client;
            MoodHandlerService.credentials       = credentials;
            MoodHandlerService.weatherApiHandler = weatherApiHandler;
            MoodHandlerService.logger            = logger;
            //set start to true
            onStart = true;
            //Initialize Timer
            Timer dailyTimer   = new Timer(24 * 60 * 60 * 1000);
            Timer weatherTimer = new Timer(8 * 60 * 60 * 1000);
            //question: does this timer even run? because its not started anywhere.
            Timer changeMoodTimer = new Timer(2 * 60 * 1000);

            //hook timer events
            dailyTimer.Elapsed      += DailyTimer_Elapsed;
            weatherTimer.Elapsed    += WeatherTimer_Elapsed;
            changeMoodTimer.Elapsed += ChangeMoodTimer_Elapsed;
            //start timer
            dailyTimer.Start();
            weatherTimer.Start();
            changeMoodTimer.Start();
            //get start values
            DailyTimer_Elapsed(null, null);
            await checkWeather();

            newMood = GetMood();
            await setMood(newMood).ConfigureAwait(false);

            onStart = false;
            client.MessageReceived += Client_MessageReceived;
        }
        public static void InitializeWeatherSub(DiscordSocketClient client, BotCredentials credentials, WeatherApiHandler weatherApiHandler)
        {
            WeatherSubscriptionService.client            = client;
            WeatherSubscriptionService.weatherApiHandler = weatherApiHandler;
            WeatherSubscriptionService.credentials       = credentials;
            Timer checkWeather = new Timer(60 * 1000);

            checkWeather.Start();
            checkWeather.Elapsed += CheckWeather_Elapsed;
        }
예제 #3
0
 public WeatherCommands(WeatherApiHandler weatherApiHandler, ConfigManager configManager)
 {
     this.weatherApiHandler = weatherApiHandler;
     this.configManager     = configManager;
 }