diff options
| author | 2019-06-06 11:16:47 +0100 | |
|---|---|---|
| committer | 2019-06-06 11:16:47 +0100 | |
| commit | 4c6a398f531d2bc0e6570d3a6c18ead037c646b1 (patch) | |
| tree | 55de47fadc87663b335b4acf8b66e41084a5fb5a /modules/line_handler/core.py | |
| parent | message_tag_escape() message-tag values when .format()ing IRCLine (diff) | |
| signature | ||
Ask for our own modes when we get a 001
Diffstat (limited to 'modules/line_handler/core.py')
| -rw-r--r-- | modules/line_handler/core.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/modules/line_handler/core.py b/modules/line_handler/core.py index 3d656b2f..2e9abc7d 100644 --- a/modules/line_handler/core.py +++ b/modules/line_handler/core.py @@ -11,6 +11,7 @@ def handle_001(event): event["server"].name = event["source"].hostmask event["server"].set_own_nickname(event["args"][0]) event["server"].send_whois(event["server"].nickname) + event["server"].send_mode(event["server"].nickname) event["server"].connected = True def handle_005(events, event): @@ -64,6 +65,13 @@ def motd_start(event): def motd_line(event): event["server"].motd_lines.append(event["args"][1]) +def _own_modes(server, modes): + mode_chunks = RE_MODES.findall(modes) + for chunk in mode_chunks: + remove = chunk[0] == "-" + for mode in chunk[1:]: + server.change_own_mode(remove, mode) + def mode(events, event): user = event["server"].get_user(event["source"].nickname) target = event["args"][0] @@ -88,14 +96,13 @@ def mode(events, event): events.on("received.mode.channel").call(modes=modes, mode_args=_args, channel=channel, server=event["server"], user=user) elif event["server"].is_own_nickname(target): - modes = RE_MODES.findall(event["args"][1]) - for chunk in modes: - remove = chunk[0] == "-" - for mode in chunk[1:]: - event["server"].change_own_mode(remove, mode) + _own_modes(event["server"], event["args"][1]) events.on("self.mode").call(modes=modes, server=event["server"]) event["server"].send_who(event["server"].nickname) +def handle_221(event): + _own_modes(event["server"], event["args"][1]) + def invite(events, event): target_channel = event["args"][1] user = event["server"].get_user(event["source"].nickname) |
