+ def _gotmode(self, pieces):
+ source = pieces[0].split('!')[0][1:]
+ chan = self.parent.channel(pieces[2])
+ mode = pieces[3]
+ args = pieces[4:]
+
+ adding = True
+ for c in mode:
+ if c == '+':
+ adding = True
+ elif c == '-':
+ adding = False
+ elif c == 'o':
+ if adding:
+ chan.userop(self.parent.user(args.pop(0)))
+ else:
+ chan.userdeop(self.parent.user(args.pop(0)))
+ elif c == 'v':
+ if adding:
+ chan.uservoice(self.parent.user(args.pop(0)))
+ else:
+ chan.userdevoice(self.parent.user(args.pop(0)))
+ else:
+ pass # don't care about other modes