Check a channel's automode when automode is turned on in modules/auto_mode.py
This commit is contained in:
parent
787053b605
commit
e96c983dca
1 changed files with 16 additions and 10 deletions
|
@ -26,17 +26,12 @@ class Module(ModuleManager.BaseModule):
|
||||||
for channel in event["user"].channels:
|
for channel in event["user"].channels:
|
||||||
self._check_modes(channel, event["user"])
|
self._check_modes(channel, event["user"])
|
||||||
|
|
||||||
@utils.hook("received.command.syncmodes", channel_only=True)
|
def _check_channel(self, channel):
|
||||||
def sync_modes(self, event):
|
|
||||||
"""
|
|
||||||
:help: Check/sync user modes
|
|
||||||
:require_mode: o
|
|
||||||
"""
|
|
||||||
modes = []
|
modes = []
|
||||||
for user in event["target"].users:
|
for user in channel.users:
|
||||||
user_modes = self._get_modes(event["target"], user)
|
user_modes = self._get_modes(channel, user)
|
||||||
for user_mode in user_modes:
|
for user_mode in user_modes:
|
||||||
if not event["target"].has_mode(user, user_mode):
|
if not channel.has_mode(user, user_mode):
|
||||||
modes.append([user_mode, user.nickname])
|
modes.append([user_mode, user.nickname])
|
||||||
|
|
||||||
# break up in to chunks of (maximum) 3
|
# break up in to chunks of (maximum) 3
|
||||||
|
@ -45,8 +40,19 @@ class Module(ModuleManager.BaseModule):
|
||||||
for chunk in mode_chunks:
|
for chunk in mode_chunks:
|
||||||
modes = [item[0] for item in chunk]
|
modes = [item[0] for item in chunk]
|
||||||
nicknames = [item[1] for item in chunk]
|
nicknames = [item[1] for item in chunk]
|
||||||
event["target"].send_mode(
|
channel.send_mode(
|
||||||
"+%s" % "".join(modes), " ".join(nicknames))
|
"+%s" % "".join(modes), " ".join(nicknames))
|
||||||
|
@utils.hook("received.command.syncmodes", channel_only=True)
|
||||||
|
def sync_modes(self, event):
|
||||||
|
"""
|
||||||
|
:help: Check/sync user modes
|
||||||
|
:require_mode: o
|
||||||
|
"""
|
||||||
|
self._check_channel(event["target"])
|
||||||
|
@utils.hook("set.channelset.automode")
|
||||||
|
def on_automode_set(self, event):
|
||||||
|
if event["value"]:
|
||||||
|
self._check_channel(event["target"])
|
||||||
|
|
||||||
def _add_mode(self, event, mode, mode_name):
|
def _add_mode(self, event, mode, mode_name):
|
||||||
target_user = event["server"].get_user(event["args_split"][0])
|
target_user = event["server"].get_user(event["args_split"][0])
|
||||||
|
|
Loading…
Reference in a new issue