/// <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);
        }
Beispiel #2
0
        /// <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);
        }