'User mode message
Parameters: <nickname>
*( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) )'

def irc_MODE(self, prefix, params):

    try:
        channelOrUser = params[0]
        if isinstance(channelOrUser, bytes):
            channelOrUser = channelOrUser.decode(self.encoding)
    except UnicodeDecodeError:
        self.sendMessage(irc.ERR_NOSUCHNICK, params[0], ':No    such    nickname    (could    not    decode    your    unicode!)')
        return
    if channelOrUser.startswith('#'):
        def ebGroup(err):
            err.trap(ewords.NoSuchGroup)
            self.sendMessage(irc.ERR_NOSUCHCHANNEL, params[0], ":That    channel    doesn't    exist.")
        d = self.realm.lookupGroup(channelOrUser[1:])
        d.addCallbacks(self._channelMode, ebGroup, callbackArgs=tuple(params[1:]))
    else:
        def ebUser(err):
            self.sendMessage(irc.ERR_NOSUCHNICK, ':No    such    nickname.')
        d = self.realm.lookupUser(channelOrUser)
        d.addCallbacks(self._userMode, ebUser, callbackArgs=tuple(params[1:]))
