Example #1
0
        static void Main(string[] args)
        {
            Logger.SetupLogger();

            Logger.Log("Chino-chan handler loading...");
            ConfigEditor = new ConfigEditor();

loadConfig:
            Logger.Log("Loading config...");
            Config = LoadConfig(ConfigPath);
            Logger.Log("Config loaded!", Color: ConsoleColor.Green);
            if (Config.IsNewConfig())
            {
                Config.SaveConfig();
                Logger.Log("Your config is outdated! Please check your configuration to avoid future crashes, and press enter!", Color: ConsoleColor.Cyan);
                ConfigEditor.FillEmpty(Config);
                goto loadConfig;
            }

            Logger.Log("Checking libraries...");
            if (!CheckLibraries())
            {
                Logger.Log("Please install the libraries / runtimes mentioned above! Press enter to exit!", Color: ConsoleColor.Red);
                Console.ReadLine();
                Environment.Exit(1);
            }
            Logger.Log("Checking libraries done!", Color: ConsoleColor.Green);

            Logger.Log("Initializing Webhook manager...");
            Manager = new WebhookManager(Config);
            Logger.Log("Webhook manager initialized!", Color: ConsoleColor.Green);

            Logger.Log("Initializing Bot handler...");
            BotHandler = new BotHandler(Config);
            Logger.Log("Handler initialized!", Color: ConsoleColor.Green);

            Logger.Log("Initializing updater...");
            Updater    = new Updater(Config);
            BotUpdate += () =>
            {
                Updater.Update(true);
            };
            HandlerUpdate += () =>
            {
                Updater.Update(false);
            };
            Logger.Log("Updater initialized!", Color: ConsoleColor.Green);

            Logger.Log("Initializing Remote Console...");
            RemoteConsole = new RemoteConsole(Config);
            Logger.Log("Remote Console initialized!", Color: ConsoleColor.Green);


            Logger.Log("Initializing menu...");
            MenuHandler = new MenuHandler();
            MenuHandler.Add("Start", () =>
            {
                BotHandler.Start();
                ShowMenu = false;
            });
            MenuHandler.Add("Edit Config", () =>
            {
                ConfigEditor.EditAll(Config);
                Logger.Log("Restart the program for the changes to take effect.");
            });
            MenuHandler.Add("Exit", () =>
            {
                BotHandler.Quit();
                Environment.Exit(0);
            });
            Console.Clear();

            Logger.Log("Starting Webhook manager...");
            if (Manager.Start())
            {
                Logger.Log("Webhook manager successfully started!", Color: ConsoleColor.Green);
                Console.Clear();
            }
            RemoteConsole.Start();
            Console.WriteLine();
            HandleCommands();
        }