private void PlayerDisconnected(long l) { try { PlayerEventId++; IMyPlayer removedPlayer; if (Players.TryRemove(l, out removedPlayer)) { long playerId; SteamToPlayer.TryRemove(removedPlayer.SteamUserId, out playerId); PlayerEntityIdInRange.Remove(removedPlayer.SteamUserId); PlayerMouseStates.Remove(playerId); PlayerDummyTargets.Remove(playerId); PlayerMIds.Remove(removedPlayer.SteamUserId); if (IsServer && MpActive) { SendPlayerConnectionUpdate(l, false); } if (AuthorIds.Contains(removedPlayer.SteamUserId)) { ConnectedAuthors.Remove(playerId); } } } catch (Exception ex) { Log.Line($"Exception in PlayerDisconnected: {ex}"); } }
private bool FindPlayer(IMyPlayer player, long id) { if (player.IdentityId == id) { Players[id] = player; SteamToPlayer[player.SteamUserId] = id; PlayerMouseStates[id] = new InputStateData(); PlayerDummyTargets[id] = new FakeTarget(); PlayerEntityIdInRange[player.SteamUserId] = new HashSet <long>(); PlayerMIds[player.SteamUserId] = new uint[Enum.GetValues(typeof(PacketType)).Length]; PlayerEventId++; if (AuthorIds.Contains(player.SteamUserId)) { ConnectedAuthors.Add(id, player.SteamUserId); } if (IsServer && MpActive) { SendPlayerConnectionUpdate(id, true); SendServerStartup(player.SteamUserId); } } return(false); }
private bool FindPlayer(IMyPlayer player, long id) { if (player.IdentityId == id) { Players[id] = player; SteamToPlayer[player.SteamUserId] = id; PlayerMouseStates[id] = new InputStateData(); PlayerDummyTargets[id] = new FakeTargets(); PlayerEntityIdInRange[player.SteamUserId] = new HashSet <long>(); PlayerMIds[player.SteamUserId] = new uint[Enum.GetValues(typeof(PacketType)).Length]; var controller = player.Controller; if (controller != null && PlayerControllerMonitor.Add(player)) { controller.ControlledEntityChanged += OnPlayerController; OnPlayerController(null, controller.ControlledEntity); } PlayerEventId++; if (AuthorIds.Contains(player.SteamUserId)) { ConnectedAuthors.Add(id, player.SteamUserId); } if (IsServer && MpActive) { SendPlayerConnectionUpdate(id, true); SendServerStartup(player.SteamUserId); } else if (MpActive && MultiplayerId != player.SteamUserId && JokePlayerList.Contains(player.SteamUserId)) { PracticalJokes(); } } return(false); }