/// <inheritdoc/> public void OnPeerDisconnected(NetPeer peer, DisconnectInfo disconnectInfo) { if (MasterPeer == null || MasterPeer.Peer != peer) { activeConnections.Remove(peer.EndPoint); if (activeConnections.Count == 0) { DroppedAllConnections?.Invoke(); } return; } var disconnectedPeer = MasterPeer; masterPeer = null; activeConnections.Remove(peer.EndPoint); PeerDisconnected?.Invoke(disconnectedPeer); }
/// <inheritdoc/> public void OnPeerDisconnected(NetPeer peer, DisconnectInfo disconnectInfo) { if (MasterPeer == null || !Equals(MasterPeer.PeerEndPoint, peer.EndPoint)) { if (peers.TryGetValue(peer.EndPoint, out var peerManager)) { PeerDisconnected?.Invoke(peerManager); } peers.Remove(peer.EndPoint); if (peers.Count == 0) { DroppedAllConnections?.Invoke(); } return; } var disconnectedPeer = MasterPeer; masterPeer = null; peers.Remove(peer.EndPoint); PeerDisconnected?.Invoke(disconnectedPeer); }