private void HandleDisconnected(NetIncomingMessage message)
        {
            string username = _connectionToUsername[message.SenderConnection];

            OnPlayerDisconnected?.Invoke(username);
            _usernameToConnection.Remove(username);
            _connectionToUsername.Remove(message.SenderConnection);
        }
Exemple #2
0
        public PhotonService(IRuntimeService runtimeService)
        {
            _runtimeService = runtimeService;
            _photonClient   = runtimeService.RegisterClient <PhotonCallbacksClient>();

            _photonClient.OnPlayerConnected    += p => OnPlayerConnected?.Invoke(p);
            _photonClient.OnPlayerDisconnected += p => OnPlayerDisconnected?.Invoke(p);

            Connect();
        }
    public void DisconnectPlayer(int disconnectedPlayer)
    {
        Debug.Log($"Player: {disconnectedPlayer} has disconnected.");
        PlayerManager playerManager = PlayerDictionary[disconnectedPlayer];

        OnPlayerDisconnected?.Invoke(disconnectedPlayer, playerManager.GetUsername());

        playerManager.Disconnect();
        PlayerDictionary.Remove(disconnectedPlayer);
    }
Exemple #4
0
 protected void DisconnectHandler(NeutronPlayer player)
 {
     using (player) //* Libera os recursos não gerenciados do jogador desconectado.
     {
         if (SocketHelper.RemovePlayerFromServer(player))
         {
             OnPlayerDisconnected?.Invoke(player);
         }
     }
 }
Exemple #5
0
        public void RemovePlayer(IPlayer player)
        {
            if (!Players.Contains(player))
            {
                return;
            }

            Players.Remove(player);
            SpecList.Remove(player);

            if (player.Entity != null &&
                Game.IsHost)
            {
                player.Entity.Delete();
            }

            SetPlayerSpectateTarget(player, null);

            OnPlayerDisconnected?.Invoke(player);
        }
        internal void OnServerDisconnect(NetworkConnection conn)
        {
            if (!NetworkServer.active)
            {
                return;
            }

            // Invoke OnPlayerDisconnected on all instances of MatchController
            OnPlayerDisconnected?.Invoke(conn);

            Guid matchId;

            if (playerMatches.TryGetValue(conn, out matchId))
            {
                playerMatches.Remove(conn);
                openMatches.Remove(matchId);

                foreach (NetworkConnection playerConn in matchConnections[matchId])
                {
                    PlayerInfo _playerInfo = playerInfos[playerConn];
                    _playerInfo.ready       = false;
                    _playerInfo.matchId     = Guid.Empty;
                    playerInfos[playerConn] = _playerInfo;
                    playerConn.Send(new ClientMatchMessage {
                        clientMatchOperation = ClientMatchOperation.Departed
                    });
                }
            }

            foreach (KeyValuePair <Guid, HashSet <NetworkConnection> > kvp in matchConnections)
            {
                kvp.Value.Remove(conn);
            }

            PlayerInfo playerInfo = playerInfos[conn];

            if (playerInfo.matchId != Guid.Empty)
            {
                MatchInfo matchInfo;
                if (openMatches.TryGetValue(playerInfo.matchId, out matchInfo))
                {
                    matchInfo.players--;
                    openMatches[playerInfo.matchId] = matchInfo;
                }

                HashSet <NetworkConnection> connections;
                if (matchConnections.TryGetValue(playerInfo.matchId, out connections))
                {
                    PlayerInfo[] infos = connections.Select(playerConn => playerInfos[playerConn]).ToArray();

                    foreach (NetworkConnection playerConn in matchConnections[playerInfo.matchId])
                    {
                        if (playerConn != conn)
                        {
                            playerConn.Send(new ClientMatchMessage {
                                clientMatchOperation = ClientMatchOperation.UpdateRoom, playerInfos = infos
                            });
                        }
                    }
                }
            }

            SendMatchList();
        }
Exemple #7
0
 // Fires the OnPlayerConnected action, takes the player as a parameter
 public void InvokePlayerDisconnected(GameObject player)
 {
     OnPlayerDisconnected?.Invoke(player);
 }
Exemple #8
0
 public void InvokePlayerDisconnected(ConnectedClient client) => OnPlayerDisconnected?.Invoke(client);
Exemple #9
0
        public override void ClientDisconnect(Client cl, NetworkDisconnectionReason reason)
        {
            base.ClientDisconnect(cl, reason);

            OnPlayerDisconnected?.Invoke(cl);
        }
Exemple #10
0
 internal static void RunPlayerDisconnected(SteamPlayer player) => OnPlayerDisconnected?.Invoke(UnturnedPlayer.Create(player));
 private static void OnPlayerRemoved(Matchmaker.Stream stream)
 {
     OnPlayerDisconnected?.Invoke(stream);
 }
 private void PlayerDisconnected(string player)
 {
     OnPlayerDisconnected?.Invoke(player);
 }
Exemple #13
0
 private void PlayerDisconnected(string username)
 {
     OnPlayerDisconnected?.Invoke(username);
 }
        public override void OnPlayerLeftRoom(Player otherPlayer)
        {
            Debug.Log($"On Photon Player disconnected ID {otherPlayer.ActorNumber}");

            OnPlayerDisconnected?.Invoke(CreatePlayerID(otherPlayer.ActorNumber));
        }
 public void PlayerDisconnected(Player player)
 {
     OnPlayerDisconnected?.Invoke(player, EventArgs.Empty);
 }
 public override void OnPlayerLeftRoom(Player otherPlayer)
 {
     OnPlayerDisconnected?.Invoke(otherPlayer);
 }