aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2018-10-12 10:57:34 +0100
committerGravatar jesopo2018-10-12 10:57:47 +0100
commite96c983dca023381ca1924cc851612fa38110292 (patch)
tree3b9901ce9b092a30aee7110a6c1e69370487c470 /modules
parentFire an event when a user/channel/server/bot setting is set in modules/set.py (diff)
signature
Check a channel's automode when automode is turned on in modules/auto_mode.py
Diffstat (limited to 'modules')
-rw-r--r--modules/auto_mode.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/modules/auto_mode.py b/modules/auto_mode.py
index f3c2d119..dc8cff38 100644
--- a/modules/auto_mode.py
+++ b/modules/auto_mode.py
@@ -26,17 +26,12 @@ class Module(ModuleManager.BaseModule):
for channel in event["user"].channels:
self._check_modes(channel, event["user"])
- @utils.hook("received.command.syncmodes", channel_only=True)
- def sync_modes(self, event):
- """
- :help: Check/sync user modes
- :require_mode: o
- """
+ def _check_channel(self, channel):
modes = []
- for user in event["target"].users:
- user_modes = self._get_modes(event["target"], user)
+ for user in channel.users:
+ user_modes = self._get_modes(channel, user)
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])
# break up in to chunks of (maximum) 3
@@ -45,8 +40,19 @@ class Module(ModuleManager.BaseModule):
for chunk in mode_chunks:
modes = [item[0] for item in chunk]
nicknames = [item[1] for item in chunk]
- event["target"].send_mode(
+ channel.send_mode(
"+%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):
target_user = event["server"].get_user(event["args_split"][0])