public void ResetAuthorityForClientCubes(int clientIndex)
    {
        int authorityIndex = clientIndex + 1;

        for (int i = 0; i < Constants.NumCubes; ++i)
        {
            NetworkInfo networkInfo = cubes[i].GetComponent <NetworkInfo>();

            if (networkInfo.GetAuthorityIndex() == authorityIndex)
            {
                Debug.Log("Returning cube " + i + " to default authority");

                networkInfo.DetachCubeFromPlayer();

                networkInfo.SetAuthorityIndex(0);
                networkInfo.SetAuthoritySequence(0);
                networkInfo.IncreaseOwnershipSequence();

                var rigidBody = cubes[i].GetComponent <Rigidbody>();

                if (rigidBody.IsSleeping())
                {
                    rigidBody.WakeUp();
                }

                ResetCubeRingBuffer(i);
            }
        }
    }