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 (PlayerControllerMonitor.Remove(removedPlayer)) { removedPlayer.Controller.ControlledEntityChanged -= OnPlayerController; } if (IsServer && MpActive) { SendPlayerConnectionUpdate(l, false); } if (AuthorIds.Contains(removedPlayer.SteamUserId)) { ConnectedAuthors.Remove(playerId); } } } catch (Exception ex) { Log.Line($"Exception in PlayerDisconnected: {ex}"); } }