diff --git a/protocols/clientbot.py b/protocols/clientbot.py index 220b84d..e5eb627 100644 --- a/protocols/clientbot.py +++ b/protocols/clientbot.py @@ -242,8 +242,10 @@ class ClientbotWrapperProtocol(IRCCommonProtocol): log.debug('(%s) mode: filtered modes for %s: %s', self.name, channel, extmodes) if extmodes: - self.send('MODE %s %s' % (channel, self.join_modes(extmodes))) - # Don't update the state here: the IRCd sill respond with a MODE reply if successful. + bufsize = self.S2S_BUFSIZE - len(':%s MODE %s ' % (self.get_hostmask(self.pseudoclient.uid), channel)) + for msg in self.wrap_modes(extmodes, bufsize, max_modes_per_msg=int(self._caps.get('MODES', 0))): + self.send('MODE %s %s' % (channel, msg)) + # Don't update the state here: the IRCd sill respond with a MODE reply if successful. def nick(self, source, newnick): """STUB: Sends NICK changes."""