private void Start(string[] args) { #if !DNXCORE50 Console.Title = $"{AppName} (Discord.Net v{DiscordConfig.LibVersion})"; #endif GlobalSettings.Load(); _client = new DiscordClient(x => { x.AppName = AppName; x.AppUrl = AppUrl; x.MessageCacheSize = 0; x.UsePermissionsCache = false; x.EnablePreUpdateEvents = true; x.LogLevel = LogSeverity.Info; x.LogHandler = OnLogMessage; }) .UsingCommands(x => { x.PrefixChar = '!'; x.AllowMentionPrefix = false; x.HelpMode = HelpMode.Public; x.ExecuteHandler = OnCommandExecuted; x.ErrorHandler = OnCommandError; }) .UsingModules() .UsingAudio(x => { x.Mode = AudioMode.Outgoing; x.EnableMultiserver = true; x.EnableEncryption = true; x.Bitrate = AudioServiceConfig.MaxBitrate; x.BufferLength = 10000; }) .UsingPermissionLevels(PermissionResolver) .AddService <SettingsService>() .AddService <HttpService>() .AddModule <AdminModule>("Admin", ModuleFilter.ServerWhitelist) .AddModule <ColorsModule>("Colors", ModuleFilter.ServerWhitelist) //.AddModule<FeedModule>("Feeds", ModuleFilter.ServerWhitelist) //.AddModule<GithubModule>("Repos", ModuleFilter.ServerWhitelist) .AddModule <ModulesModule>("Modules", ModuleFilter.None) .AddModule <PublicModule>("Public", ModuleFilter.None) .AddModule <TwitchModule>("Twitch", ModuleFilter.None) .AddModule <StatusModule>("Status", ModuleFilter.ServerWhitelist) .AddModule <Music>("Music", ModuleFilter.ServerWhitelist) .AddModule <DiscordBot.Modules.Sql.sql>("sql", ModuleFilter.None); PublicModule.loadgods(); //.AddModule(new ExecuteModule(env, exporter), "Execute", ModuleFilter.ServerWhitelist); #if PRIVATE PrivateModules.Install(_client); #endif /* IAudioClient test = new IAudioClient(); * test.*/ //Convert this method to an async function and connect to the server //DiscordClient will automatically reconnect once we've established a connection, until then we loop on our end //Note: ExecuteAndWait is only needed for Console projects as Main can't be declared as async. UI/Web applications should *not* use this function. _client.UserJoined += async(s, e) => { DiscordBot.Modules.Sql.sql sqll = new Modules.Sql.sql(); string message = sqll.getsinglevalue("servers", "server = " + e.Server.Id, "welcome"); if (message != "" && message != null && message.Length > 0) { Channel pm = await _client.CreatePrivateChannel(e.User.Id); await pm.SendMessage(message); } }; _client.ExecuteAndWait(async() => { while (true) { try { await _client.Connect(GlobalSettings.Discord.Email, GlobalSettings.Discord.Password); _client.SetGame("O Bot"); break; } catch (Exception ex) { _client.Log.Error($"Login Failed", ex); await Task.Delay(_client.Config.FailedReconnectDelay); } } }); }