/// <summary> /// Creates the server. /// </summary> public void Create(NameValueCollection variables) { if (Server != null) throw new InvalidOperationException("The server has already been created! (Is CreateOnEnable enabled?)"); if (configuration != null) { //Create spawn data from config ServerSpawnData spawnData = ServerSpawnData.CreateFromXml(XDocument.Parse(configuration.text), variables); //Inaccessible from xml, set from inspector spawnData.EventsFromDispatcher = eventsFromDispatcher; //Unity is broken, work around it... //This is an obsolete property but is still used if the user is using obsolete <server> tag properties #pragma warning disable 0618 spawnData.Server.UseFallbackNetworking = true; #pragma warning restore 0618 //Add types spawnData.PluginSearch.PluginTypes.AddRange(UnityServerHelper.SearchForPlugins()); spawnData.PluginSearch.PluginTypes.Add(typeof(UnityConsoleWriter)); //Create server Server = new DarkRiftServer(spawnData); Server.Start(); enetListener = Server.NetworkListenerManager.GetNetworkListenersByType<EnetListenerPlugin>().First(); } else Debug.LogError("No configuration file specified!"); }
public void GivenIHaveARunningServer(string serverConfig) { NameValueCollection parameters = new NameValueCollection { { "port", GetFreePort().ToString() } }; DarkRiftServer server = new DarkRiftServer(ServerSpawnData.CreateFromXml("Configurations/Server/" + serverConfig, parameters)); server.StartServer(); world.AddServer(server); #if DEBUG // We've just requested a load of objects that wont be returned until we close // UDP receive TCP accept performanceSteps.ExpectedUnaccountedForSocketAsyncEventArgs += 2; #endif }