static bool ReadyServer() { ServerConfiguration.Instance.WriteLog(); if (Server.StaticInit(Convert.ToUInt16(ServerConfiguration.Instance.config["port"]), Convert.ToByte(ServerConfiguration.Instance.config["world_count"]), Convert.ToInt32(ServerConfiguration.Instance.config["map_id"]), Convert.ToBoolean(ServerConfiguration.Instance.config["battle_auth"])) == false) { Log.Error("Server.StaticInit error"); return(false); } string dns = ""; if (ServerConfiguration.Instance.config["ip"] != null) { dns = ServerConfiguration.Instance.config["ip"]; } else if (ServerConfiguration.Instance.config["meta_hostname"] != null) { try { HttpClient client = new HttpClient(); HttpRequestMessage msg = new HttpRequestMessage(HttpMethod.Get, ServerConfiguration.Instance.config["meta_hostname"]); HttpResponseMessage response = client.SendAsync(msg).Result; // Get the response var responseString = response.Content.ReadAsStringAsync().Result; if (response.StatusCode != HttpStatusCode.OK) { Log.Error($"getInfo error :{responseString}"); return(false); } dns = responseString; } catch (HttpRequestException e) { Log.Error($"HttpRequestException :{e.Message}"); return(false); } catch (Exception e) { Log.Error($"Exception :{e.Message}"); return(false); } } else { Log.Error("server address error"); return(false); } var server_addr = dns + ":" + ServerConfiguration.Instance.config["port"]; var redis_addr = ServerConfiguration.Instance.config["redis:ip"] + ":" + ServerConfiguration.Instance.config["redis:port"]; var DefaultFirstReplicationTimeout = ServerConfiguration.Instance.config.GetSection("DefaultFirstReplicationTimeout"); if (DefaultFirstReplicationTimeout.Value != null) { ReplicationManagerServer.DefaultFirstReplicationTimeout = int.Parse(DefaultFirstReplicationTimeout.Value); } if (Convert.ToBoolean(ServerConfiguration.Instance.config["server_process_update"])) { ServerProcessManager.sInstance.Init(server_addr, redis_addr); } if (ServerConfiguration.Instance.channel_update == true) { Cache.sInstance.Init(Convert.ToByte(ServerConfiguration.Instance.config["world_count"]), server_addr, redis_addr, ServerConfiguration.Instance.config["name"], Convert.ToInt32(ServerConfiguration.Instance.config["map_id"])); Subscribe.Do((Lidgren.Network.NetServer)NetworkManagerServer.sInstance.GetServer()); CacheThread.Run(); } return(true); }