private async Task InitializeTimers(bool allShardsLoggedIn) { if (!allShardsLoggedIn) { return; } // We need to load the cache on program start. await MemoryCache.Initialize(); await ConsoleLogger.LogAsync("Memory Cache timer initialized", LogLvl.INFO); await KaguyaStatsFactory.Initialize(); await ConsoleLogger.LogAsync("Kaguya stats updater initialized", LogLvl.INFO); await AntiRaidService.Initialize(); await ConsoleLogger.LogAsync("Antiraid service initialized", LogLvl.INFO); await AutoUnmuteHandler.Initialize(); await ConsoleLogger.LogAsync("Unmute handler initialized", LogLvl.INFO); #if !DEBUG await OwnerGiveawayMessageUpdaterService.Initialize(); await ConsoleLogger.LogAsync("Owner giveaway message updater initialized", LogLvl.INFO); await KaguyaPremiumRoleHandler.Initialize(); await ConsoleLogger.LogAsync("Kaguya Premium role handler initialized", LogLvl.INFO); await KaguyaPremiumExpirationHandler.Initialize(); await ConsoleLogger.LogAsync("Kaguya Premium expiration handler initialized", LogLvl.INFO); await RateLimitService.Initialize(); await ConsoleLogger.LogAsync("Ratelimit service initialized", LogLvl.INFO); await StatsUpdater.Initialize(); await ConsoleLogger.LogAsync("Top.gg stats updater initialized", LogLvl.INFO); await RemindService.Initialize(); await ConsoleLogger.LogAsync("Remind service initialized", LogLvl.INFO); await UpvoteExpirationNotifier.Initialize(); await ConsoleLogger.LogAsync("Upvote expiration notification timer initialized", LogLvl.INFO); await GameRotationService.Initialize(); await ConsoleLogger.LogAsync("Game rotation timer initialized", LogLvl.INFO); #endif await ConsoleLogger.LogAsync("All timers initialized.", LogLvl.INFO); }