using System; using System.Threading.Tasks; using DeukBot4.Database; using DeukBot4.Database.ServerSettings; using DeukBot4.MessageHandlers; using DeukBot4.MessageHandlers.CommandHandler; using Discord; using Discord.Commands.Builders; using Discord.WebSocket; namespace DeukBot4 { internal static class Program { public static DiscordSocketClient Client { get; private set; } public static Settings Settings { get; private set; } public static ulong BotId { get; private set; } private static void Main(string[] args) { MainAsync().GetAwaiter().GetResult(); } private static async Task MainAsync() { Settings = Settings.FromJsonFile("settings.json"); DatabaseConnection.ConnectionString = Settings.DatabaseConnectionString; DatabaseInitializer.Initialize(); ServerSettingHandler.OnBotStartUp(); CommandHandler.Build(); ImageBackupHandler.SetBackupChannels(Settings.BackupChannels); ImageBackupHandler.Settings = Settings.NextcloudSettings; Client = new DiscordSocketClient(); Client.Log += Logger.LogDiscord; Client.Ready += OnReady; Client.MessageReceived += MainHandler.HandleMessage; await Client.LoginAsync(TokenType.Bot, Settings.Token); await Client.StartAsync(); // Block this task until the program is closed. await Task.Delay(-1); } private static async Task OnReady() { await Client.CurrentUser.ModifyAsync(properties => { properties.Username = Settings.Username; }); BotId = Client.CurrentUser.Id; } } }