BadWords: bugfix & don't kick ops (Closes ProgVal/Limnoria#275)

This commit is contained in:
GLolol 2015-01-02 22:08:59 -05:00
parent 015d7f38d0
commit 7e7c4425cf

View File

@ -29,7 +29,6 @@
### ###
import re import re
import math
import time import time
import supybot.conf as conf import supybot.conf as conf
@ -77,9 +76,16 @@ class BadWords(callbacks.Privmsg):
self.updateRegexp(channel) self.updateRegexp(channel)
s = ircutils.stripFormatting(msg.args[1]) s = ircutils.stripFormatting(msg.args[1])
if ircutils.isChannel(channel) and self.registryValue('kick', channel): if ircutils.isChannel(channel) and self.registryValue('kick', channel):
if self.regexp.search(s): if self.words and self.regexp.search(s):
if irc.nick in irc.state.channels[channel].ops or \ c = irc.state.channels[channel]
irc.nick in irc.state.channels[channel].halfops: cap = ircdb.makeChannelCapability(channel, 'op')
if c.isHalfopPlus(irc.nick):
if c.isHalfopPlus(msg.nick) or \
ircdb.checkCapability(msg.prefix, cap):
self.log.debug("Not kicking %s from %s, because "
"they are immune.", msg.nick,
channel)
else:
message = self.registryValue('kick.message', channel) message = self.registryValue('kick.message', channel)
irc.queueMsg(ircmsgs.kick(channel, msg.nick, message)) irc.queueMsg(ircmsgs.kick(channel, msg.nick, message))
else: else: