private async Task RunAsync() { socketClient = new DiscordSocketClient(new DiscordSocketConfig { LogLevel = LogSeverity.Verbose, AlwaysDownloadUsers = true }); socketClient.Log += Log; restClient = new DiscordRestClient(new DiscordRestConfig { LogLevel = LogSeverity.Verbose }); restClient.Log += Log; if (File.Exists("./update")) { var temp = File.ReadAllText("./update"); ulong.TryParse(temp, out updateChannel); File.Delete("./update"); Console.WriteLine($"Found an update file! It contained [{temp}] and we got [{updateChannel}] from it!"); } config = await Config.Load(); steam = new SteamService(); map = new ServiceCollection().AddSingleton(socketClient).AddSingleton(config).AddSingleton(steam).BuildServiceProvider(); await socketClient.LoginAsync(TokenType.Bot, config.Token); await socketClient.StartAsync(); await restClient.LoginAsync(TokenType.Bot, config.Token); if (File.Exists("./deadlock")) { Console.WriteLine("We're recovering from a deadlock."); File.Delete("./deadlock"); (await restClient.GetUserAsync(config.OwnerId))?.SendMessageAsync($"I recovered from a deadlock.\n`{DateTime.Now.ToShortDateString()}` `{DateTime.Now.ToLongTimeString()}`"); } socketClient.GuildAvailable += Client_GuildAvailable; socketClient.Disconnected += SocketClient_Disconnected; await steam.Install(map); handler = new CommandHandler(); await handler.Install(map); Console.WriteLine("test"); await Task.Delay(-1); }