//============================================================================================================//
    protected void HandleDisconnect(TcpClient mSocket)
    {
        void HandleEndPoint()
        {
            lock (lockerUDPEndPoints)
            {
                udpEndPoints.RemoveAll(x => x.Equals(mSocket.RemoteEndPoint()));
            }
            lock (lockerUDPEndPointsVoices)
            {
                udpEndPointsVoices.RemoveAll(x => x.Address.Equals(mSocket.RemoteEndPoint().Address));
            }
        }

        if (GetPlayer(mSocket, out Player playerHandled))
        {
            if (RemovePlayer(playerHandled))
            {
                IDS.TryRemove(mSocket, out int value);
                //=====================================\\
                HandleEndPoint();
                HandlePlayerDisconnected(playerHandled);
                //=====================================\\
                onPlayerDisconnected(playerHandled);
            }
            mSocket.Close();
        }
    }