public void OnPeerConnected(NetPeer peer) { IConnection conn = new MpNetConnection(peer); conn.username = Multiplayer.username; conn.State = ConnectionStateEnum.ClientJoining; Multiplayer.session.client = conn; Multiplayer.session.ReapplyPrefs(); MpLog.Log("Net client connected"); }
public void OnPeerConnected(NetPeer peer) { IConnection conn = new MpNetConnection(peer); conn.State = ConnectionStateEnum.ServerJoining; peer.Tag = conn; var player = server.OnConnected(conn); if (arbiter) { player.type = PlayerType.Arbiter; } }
private string NetInfoText() { if (Multiplayer.session == null) { return(""); } var text = new StringBuilder(); var netClient = Multiplayer.session.netClient; if (netClient != null) { LogNetData("Client", netClient.Statistics); } if (Multiplayer.LocalServer != null) { if (Multiplayer.LocalServer.lanManager != null) { LogNetData("Lan Server", Multiplayer.LocalServer.lanManager.Statistics); } if (Multiplayer.LocalServer.netManager != null) { LogNetData("Net Server", Multiplayer.LocalServer.netManager.Statistics); } foreach (ServerPlayer item in Enumerable.ToList(Multiplayer.LocalServer.players)) { MpNetConnection mpNetConnection = item.conn as MpNetConnection; if (mpNetConnection != null) { LogNetData("Net Peer " + item.Username, mpNetConnection.peer.Statistics); } } } foreach (var remote in Multiplayer.session.knownUsers) { text.AppendLine(SteamFriends.GetFriendPersonaName(remote)); text.AppendLine(remote.ToString()); if (SteamNetworking.GetP2PSessionState(remote, out P2PSessionState_t state)) { text.AppendLine($"Active: {state.m_bConnectionActive}"); text.AppendLine($"Connecting: {state.m_bConnecting}"); text.AppendLine($"Error: {state.m_eP2PSessionError}"); text.AppendLine($"Using relay: {state.m_bUsingRelay}"); text.AppendLine($"Bytes to send: {state.m_nBytesQueuedForSend}"); text.AppendLine($"Packets to send: {state.m_nPacketsQueuedForSend}"); text.AppendLine($"Remote IP: {state.m_nRemoteIP}"); text.AppendLine($"Remote port: {state.m_nRemotePort}"); } else { text.AppendLine("No connection"); } text.AppendLine(); } return(text.ToString()); void LogNetData(string name, NetStatistics stats) { text.AppendLine(name); text.AppendLine($"Bytes received: {stats.BytesReceived}"); text.AppendLine($"Bytes sent: {stats.BytesSent}"); text.AppendLine($"Packets received: {stats.PacketsReceived}"); text.AppendLine($"Packets sent: {stats.PacketsSent}"); text.AppendLine($"Packet loss: {stats.PacketLoss}"); text.AppendLine($"Sequenced packet loss: {stats.SequencedPacketLoss}"); text.AppendLine($"Packet loss percent: {stats.PacketLossPercent}"); text.AppendLine(); } }