Sets/gets user modes.
        Required arguments:
        * nick - Nick to set/get user modes for.
        Optional arguments:
        * modes='' - Sets these user modes on a nick.

def umode(self, nick, modes=''):
        """
        Sets/gets user modes.
        Required arguments:
        * nick - Nick to set/get user modes for.
        Optional arguments:
        * modes='' - Sets these user modes on a nick.
        """
        with self.lock:
            if not modes:
                self.send('MODE %s' % nick)
                if self.readable():
                    msg = self._recv(expected_replies=('221',))
                    if msg[0] == '221':
                        modes = msg[2].replace('+', '').replace(':', '', 1)
                return modes

            self.send('MODE %s %s' % (nick, modes))

            if self.readable():
                msg = self._recv(expected_replies=('MODE',))
                if msg[0] == 'MODE':
                    if not self.hide_called_events:
                        self.stepback()
                    return msg[2].replace(':', '', 1)