3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-28 13:42:37 +01:00

service_support: skip dynamic join/part hooks on bot-only servers

This commit is contained in:
James Lu 2018-04-17 15:21:40 -07:00
parent 78d1d20856
commit 0ead868546

View File

@ -131,6 +131,10 @@ utils.add_hook(handle_kill, 'KILL')
def handle_join(irc, source, command, args):
"""Monitors channel joins for dynamic service bot joining."""
if irc.has_cap('visible-state-only'):
# No-op on bot-only servers.
return
channel = args['channel']
users = irc.channels[channel].users
for servicename, sbot in world.services.items():
@ -143,6 +147,10 @@ utils.add_hook(handle_join, 'PYLINK_SERVICE_JOIN')
def _services_dynamic_part(irc, channel):
"""Dynamically removes service bots from empty channels."""
if irc.has_cap('visible-state-only'):
# No-op on bot-only servers.
return
# If all remaining users in the channel are service bots, make them all part.
if all(irc.is_internal_client(u) for u in irc.channels[channel].users):
for u in irc.channels[channel].users.copy():