mirror of
https://github.com/Mikaela/Limnoria.git
synced 2025-02-02 07:34:08 +01:00
Made the bot refuse to kban himself; made him not use a banmask that would ban himself.
This commit is contained in:
parent
563e5ad2bf
commit
93b16b79c2
@ -112,6 +112,9 @@ class Channel(callbacks.Privmsg):
|
||||
"""
|
||||
channel = privmsgs.getChannel(msg, args)
|
||||
(bannedNick, length) = privmsgs.getArgs(args, optional=1)
|
||||
if bannedNick == irc.nick:
|
||||
irc.error(msg, 'I cowardly refuse to kickban myself.')
|
||||
return
|
||||
length = int(length or 0)
|
||||
try:
|
||||
bannedHostmask = irc.state.nickToHostmask(bannedNick)
|
||||
@ -120,6 +123,8 @@ class Channel(callbacks.Privmsg):
|
||||
return
|
||||
capability = ircdb.makeChannelCapability(channel, 'op')
|
||||
banmask = ircutils.banmask(bannedHostmask)
|
||||
if ircutils.hostmaskPatternEqual(banmask, irc.prefix):
|
||||
banmask = bannedHostmask
|
||||
if bannedNick == msg.nick or \
|
||||
(ircdb.checkCapability(msg.prefix, capability) \
|
||||
and not ircdb.checkCapability(bannedHostmask, capability)):
|
||||
|
@ -69,6 +69,7 @@ class ChannelTestCase(ChannelPluginTestCase, PluginDocumentation):
|
||||
m = self.getMsg(' ')
|
||||
self.assertEqual(m, ircmsgs.kick(self.channel, 'foobar', self.nick))
|
||||
self.assertNotRegexp('kban adlkfajsdlfkjsd', 'KeyError')
|
||||
self.assertError('kban %s' % self.nick)
|
||||
|
||||
def testLobotomizers(self):
|
||||
self.assertNotError('lobotomize')
|
||||
|
Loading…
Reference in New Issue
Block a user