/// <summary> /// Call when a client connects /// </summary> /// <param name="conn"></param> internal static void OnServerAddClient(NetworkConnection conn) { //Sent to client the server config conn.Send(TCNetworkManager.Instance.serverConfig); //Lets just hope our transport never assigns the first connection max value of int if (closeServerOnFirstClientDisconnect && firstConnectionId == int.MaxValue) { firstConnectionId = conn.connectionId; } Logger.Info( "Client from '{Address}' connected with the connection ID of {ConnectionID}.", conn.address, conn.connectionId); IUser user = netManager.tcAuthenticator.GetAccount(conn.connectionId); if (user != null) { ServerChat.SendChatMessage("<b>Join</b>", user.UserName); } }
/// <summary> /// Call when a client disconnects /// </summary> /// <param name="conn"></param> internal static void OnServerRemoveClient(NetworkConnection conn) { NetworkServer.DestroyPlayerForConnection(conn); if (netManager == null) { CloseServerIfNecessary(conn); return; } if (netManager.tcAuthenticator != null) { IUser user = netManager.tcAuthenticator.GetAccount(conn.connectionId); if (user != null) { ServerChat.SendChatMessage("<b>Disconnect</b>", user.UserName); } } netManager.tcAuthenticator.OnServerClientDisconnect(conn); Logger.Info("Client '{ConnectionId}' disconnected from the server.", conn.connectionId); CloseServerIfNecessary(conn); }