mirror of
https://github.com/jlu5/PyLink.git
synced 2024-12-25 04:02:45 +01:00
relay: treat kicks to the service bot on clientbot networks as clear channel
This is so if the bot is kickbanned from a channel, it will remove all users to prevent ghosts on the channel. * cbot.relay has kicked ChanServ/cbot from #test ((xdxdxd.xdxdxd/cbot) Clientbot was kicked from channel.)
This commit is contained in:
parent
88e510b4cf
commit
a9be5d0dc7
@ -363,7 +363,6 @@ def getRemoteUser(irc, remoteirc, user, spawnIfMissing=True, times_tagged=0):
|
|||||||
spawning one if it doesn't exist and spawnIfMissing is True."""
|
spawning one if it doesn't exist and spawnIfMissing is True."""
|
||||||
|
|
||||||
# Wait until the network is working before trying to spawn anything.
|
# Wait until the network is working before trying to spawn anything.
|
||||||
log.debug('(%s) getRemoteUser: waiting for irc.connected', irc.name)
|
|
||||||
irc.connected.wait(5)
|
irc.connected.wait(5)
|
||||||
|
|
||||||
# Don't spawn clones for registered service bots.
|
# Don't spawn clones for registered service bots.
|
||||||
@ -1071,6 +1070,15 @@ def handle_kick(irc, source, command, args):
|
|||||||
kicker = source
|
kicker = source
|
||||||
relay = getRelay((irc.name, channel))
|
relay = getRelay((irc.name, channel))
|
||||||
|
|
||||||
|
# Special case for clientbot: treat kicks to the PyLink service bot as channel clear.
|
||||||
|
if irc.protoname == 'clientbot' and irc.pseudoclient and target == irc.pseudoclient.uid:
|
||||||
|
for user in irc.channels[channel].users:
|
||||||
|
if (not irc.isInternalClient(user)) and (not isRelayClient(irc, user)):
|
||||||
|
irc.callHooks([irc.sid, 'CLIENTBOT_SERVICE_KICKED', {'channel': channel, 'target': user,
|
||||||
|
'text': 'Clientbot was kicked from channel.', 'parse_as': 'KICK'}])
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
# Don't relay kicks to protected service bots.
|
# Don't relay kicks to protected service bots.
|
||||||
if relay is None or irc.isServiceBot(target):
|
if relay is None or irc.isServiceBot(target):
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user