diff --git a/Bantracker/plugin.py b/Bantracker/plugin.py index 9ec3c9c..29f178c 100644 --- a/Bantracker/plugin.py +++ b/Bantracker/plugin.py @@ -1077,6 +1077,8 @@ class Bantracker(callbacks.Plugin): self.doLog(irc, channel, '*** %s has joined %s\n' % (msg.prefix, channel)) if msg.nick == irc.nick: + if channel in self.opped: + del self.opped[channel] if channel in self.bans: del self.bans[channel] queue.queue(ircmsgs.mode(channel, 'b')) diff --git a/Bantracker/test.py b/Bantracker/test.py index 292e4e5..7dabc94 100644 --- a/Bantracker/test.py +++ b/Bantracker/test.py @@ -576,6 +576,12 @@ class BantrackerTestCase(ChannelPluginTestCase): self.assertEqual(cb.opped['#test'], True) self.deop() self.assertEqual(cb.opped['#test'], False) + self.op() + self.irc.feedMsg(ircmsgs.part('#test', prefix=self.prefix)) + self.irc.feedMsg(ircmsgs.join('#test', prefix=self.prefix)) + self.irc.takeMsg() # MODE msg + self.irc.takeMsg() # WHO msg + self.assertEqual(cb.opped['#test'], False) def testOpDuration(self): cb = self.getCallback()