public static void Init(int type, string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += ServerCore.OnUnhandledExceptionThrown;
            ServerCore.Type = type;
            ServerCore.Id   = 0;
            ServerCore.ConfigurationServer = "http://127.0.0.1/supercell/";

            if (args.Length > 0)
            {
                if (args.Length % 2 == 0)
                {
                    for (int i = 0; i < args.Length; i += 2)
                    {
                        string name  = args[i];
                        string value = args[i + 1];

                        switch (name)
                        {
                        case "-conf":
                            if (value.Length > 0)
                            {
                                if (value.StartsWith("http://") || value.StartsWith("https://"))
                                {
                                    if (!value.EndsWith("/"))
                                    {
                                        value += "/";
                                    }

                                    ServerCore.ConfigurationServer = value;
                                }
                                else
                                {
                                    Logging.Warning("ServerCore.init: invalid server url: " + value);
                                }
                            }
                            else
                            {
                                Logging.Warning("ServerCore.init server url is empty");
                            }

                            break;

                        case "-id":
                            ServerCore.Id = int.Parse(value);
                            break;
                        }
                    }
                }
                else
                {
                    Logging.Warning("ServerCore.init invalid args length");
                }
            }

            ServerCore.Random = new LogicRandom((int)DateTime.UtcNow.Ticks);

            Directory.SetCurrentDirectory(AppContext.BaseDirectory);
            Logging.Init();
            EnvironmentSettings.Init();
            ResourceSettings.Init();
            GamePlaySettings.Init();
            ResourceManager.Init();
            ServerRequestManager.Init();
            ServerManager.Init();

            ServerCore.Socket = ServerManager.GetSocket(ServerCore.Type, ServerCore.Id);
        }