AddonManager.Program.Main C# (CSharp) Method

Main() private method

private Main ( string args ) : void
args string
return void
        public static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

#if !DEBUG
            string addonPath = null;
            bool setupIPCTalk = false;
            int port = -1;
            string paths = String.Join(" ", args);

            AddonEx.dir_HttpServerCatalogs = paths.getPath("/catalogs");
            AddonEx.dir_HttpServerBaskets = paths.getPath("/baskets");
            AddonEx.dir_Accents = paths.getPath("/accents");
            AddonEx.dir_Themes = paths.getPath("/themes");
            AddonEx.dir_Languages = paths.getPath("/languages");
            AddonEx.dir_MemoryPatches = paths.getPath("/memorypatches");
            AddonEx.dir_Logs = paths.getPath("/logs");

            for (int i = 0; i < args.Length; i++)
            {
                string arg = args[i];

                if (arg == "/offlineServer")
                {
                    setupIPCTalk = true;
                    port = Convert.ToInt32(args[i + 1]);
                    Console.WriteLine("Detected /offlineServer, will be setting up IPC Talk on port {0}.", port);
                }
                else if (arg == "/installAddon")
                {
                    Console.WriteLine("Detected /installaddon, checking if given addon path is valid.");
                    if (i + 1 < args.Length)
                    {
                        string addonDir = paths.getPath("/installAddon");
                        if (File.Exists(addonDir))
                        {
                            Console.WriteLine("installAddon: Given addon path is valid, will be installing " + Path.GetFileName(addonDir));
                            addonPath = addonDir;
                        }
                    }
                }
            }

            if (String.IsNullOrWhiteSpace(AddonEx.dir_HttpServerCatalogs)
                && String.IsNullOrWhiteSpace(AddonEx.dir_HttpServerBaskets)
                && String.IsNullOrWhiteSpace(AddonEx.dir_Accents)
                && String.IsNullOrWhiteSpace(AddonEx.dir_Themes)
                && String.IsNullOrWhiteSpace(AddonEx.dir_Languages)
                && String.IsNullOrWhiteSpace(AddonEx.dir_MemoryPatches)
                && String.IsNullOrWhiteSpace(AddonEx.dir_Logs))
            {
                Console.WriteLine("Correct usage example:\r\n{0}\r\nTo automatically install an addon:\r\n{1}\r\nArgument order isn't important.\r\n{2}",
                    @"AddonManager /catalogs 'path' /baskets 'path' /accents 'path' /themes 'path' /languages 'path' /memorypatches 'path' /logs 'path'",
                    @"AddonManager /catalogs 'path' /baskets 'path' /accents 'path' /themes 'path' /languages 'path' /memorypatches 'path' /logs 'path' /installAddon 'path'",
                    @"Each variable 'path' do not need to be escaped."
                    );
                Environment.Exit(0);
                return;
            }

            Application.Run(new MainForm(Properties.Settings.Default.hasRunManagerBefore, addonPath, setupIPCTalk, port));
#else
            AddonEx.dir_HttpServerCatalogs = @"Data\Server\Catalogs\";
            AddonEx.dir_HttpServerBaskets = @"Data\Server\Baskets\";
            AddonEx.dir_Accents = @"Data\UI\Accents\";
            AddonEx.dir_Themes = @"Data\UI\Themes\";
            AddonEx.dir_Languages = @"Data\UI\Languages\";
            AddonEx.dir_MemoryPatches = @"Data\Others\Memory Patches\";
            AddonEx.dir_Logs = @"Data\Logs\";

            Application.Run(new MainForm(true, null, false));
#endif
        }
    }