Ejemplo n.º 1
0
        public async Task MainAsync()
        {
            c.title = "KipoBot";

            string[] reqPaths = { "data", "fonts", "banners" };

            foreach (var path in reqPaths)
            {
                if (!Helpers.AssertDirectory(path))
                {
                    return;
                }
            }

            if (!ConfigurationService.AssertConfigFile())
            {
                Logger.info($"Template config file created in {Helpers.WORKING_DIRECTORY}/config.json\nEdit it and rerun Kipo.");
                return;
            }

            Logger.info("Found config!");

            ImageMaker.loadBanners($"banners/");

            using (var services = ConfigureServices())
            {
                var client      = services.GetRequiredService <DiscordSocketClient>();
                var config      = services.GetRequiredService <ConfigurationService>();
                var database    = services.GetRequiredService <DatabaseService>();
                var interactive = services.GetRequiredService <InteractiveService>();

                client.Log += LogAsync;
                services.GetRequiredService <CommandService>().Log += LogAsync;

                await client.LoginAsync(TokenType.Bot, config.token);

                await client.StartAsync();

                await services.GetRequiredService <CommandHandlingService>().InitializeAsync();

                await client.SetGameAsync(config.prefix + "help");

                startJobManager();
                await Task.Delay(-1);
            }
        }