using System; using System.Threading.Tasks; using Discord; using Discord.WebSocket; using DotNetEnv; class Program { private DiscordSocketClient _client; static async Task Main(string[] args) { Env.Load(); await new Program().MainAsync(); } public async Task MainAsync() { var config = new DiscordSocketConfig() { GatewayIntents = GatewayIntents.AllUnprivileged | GatewayIntents.MessageContent | GatewayIntents.GuildVoiceStates, EnableVoiceDaveEncryption = true }; _client = new DiscordSocketClient(config); _client.Log += LogAsync; _client.Ready += ReadyAsync; var token = Environment.GetEnvironmentVariable("DISCORD_TOKEN"); if (string.IsNullOrEmpty(token)) { Console.WriteLine("[Error] Discord token is missing from the environment variables."); return; } await _client.LoginAsync(TokenType.Bot, token); await _client.StartAsync(); await Task.Delay(-1); } private Task LogAsync(LogMessage message) { Console.WriteLine($"[Discord] {message.ToString()}"); return Task.CompletedTask; } private Task ReadyAsync() { Console.WriteLine($"[Client] Connected successfully as {_client.CurrentUser}."); _ = _client.SetGameAsync("Among Us", "https://twitch.tv/mon_pseudo_twitch", ActivityType.Streaming); _ = Task.Run(async () => { try { await Task.Delay(2000); ulong guildId = 1536666691923353703; ulong vocalId = 1540346109967208598; await VocalManager.ConnectToVoiceChannelAsync(_client, guildId, vocalId); } catch (Exception ex) { Console.WriteLine($"[Error] Background voice connection failed: {ex.Message}"); } }); return Task.CompletedTask; } }