public static void Create(string serverTitle, string password, int maxPlayerCount) { UnityEngine.Network.InitializeSecurity(); try { G.Sys.NetworkingManager_.password_ = password; G.Sys.NetworkingManager_.serverTitle_ = serverTitle; G.Sys.NetworkingManager_.maxPlayerCount_ = maxPlayerCount; G.Sys.GameData_.SetString("ServerTitleDefault", serverTitle); G.Sys.GameData_.SetInt("MaxPlayersDefault", maxPlayerCount); var ncError = UnityEngine.Network.InitializeServer(maxPlayerCount - 1, 32323, true); if (ncError == NetworkConnectionError.NoError) { var eventArgs = new ServerCreatedEventArgs(serverTitle, password, maxPlayerCount); ServerCreated?.Invoke(null, eventArgs); return; } G.Sys.MenuPanelManager_.ShowError(ncError.ToString(), "Failed to start server"); } catch (Exception ex) { Debug.LogError(ex.Message); } }
/// <summary> /// Creates an <see cref="IEtpServer"/> instance. /// </summary> /// <param name="webSocket">The websocket to create the server for.</param> /// <param name="etpVersion">The ETP version for the session.</param> /// <param name="encoding">The ETP encoding for the session.</param> /// <param name="headers">The websocket headers.</param> /// <returns>The created server.</returns> public IEtpServer CreateServer(IEtpServerWebSocket webSocket, EtpVersion etpVersion, EtpEncoding encoding, IDictionary <string, string> headers) { if (webSocket == null) { throw new ArgumentNullException(nameof(webSocket)); } if (!IsEtpVersionSupported(etpVersion)) { throw new ArgumentException($"Unsupported ETP version: {etpVersion.ToVersionString()}"); } var server = CreateServerCore(webSocket, etpVersion, encoding, headers ?? new Dictionary <string, string>()); Logger.Debug(Log("[{0}] Server created.", server.SessionKey)); server.SessionClosed += OnServerSessionClosed; Servers[server.SessionId] = server; ServerCreated?.Invoke(this, new EtpServerEventArgs(server)); return(server); }
private void RunServersJob() { var servers = Server.GetServers().ToServers(); foreach (var server in servers) { var createdDate = TCAdmin.SDK.Misc.Dates.CurrentTimeZoneToUniversalTime(server.CreatedOn); var createdTimeSpan = DateTime.UtcNow - createdDate; var modifiedDate = TCAdmin.SDK.Misc.Dates.CurrentTimeZoneToUniversalTime(server.ModifiedOn); var modifiedTimeSpan = DateTime.UtcNow - modifiedDate; if (createdTimeSpan <= TimeSpan.FromSeconds(2)) { ServerCreated?.Invoke(server); } if (modifiedTimeSpan <= TimeSpan.FromSeconds(2)) { ServerModified?.Invoke(server); } } servers.Clear(); }