diff --git a/modules/signals.py b/modules/signals.py index 15eeab9f..e8af5d83 100644 --- a/modules/signals.py +++ b/modules/signals.py @@ -20,6 +20,7 @@ class Module(ModuleManager.BaseModule): for server in self.bot.servers.values(): line = server.send_quit("Shutting down") + server.send_enabled = False line.on_send(self._make_hook(server)) def _make_hook(self, server): diff --git a/src/IRCServer.py b/src/IRCServer.py index d878fdf5..d33fa228 100644 --- a/src/IRCServer.py +++ b/src/IRCServer.py @@ -58,7 +58,9 @@ class Server(IRCObject.Object): self.motd_done = False self.attempted_join = {} # type: typing.Dict[str, typing.Optional[str]] + self.ping_sent = False + self.send_enabled = True self.events.on("timer.rejoin").hook(self.try_rejoin) @@ -238,6 +240,9 @@ class Server(IRCObject.Object): return lines def send(self, line_parsed: IRCLine.ParsedLine): + if not self.send_enabled: + return None + self.events.on("preprocess.send").on(line_parsed.command ).call_unsafe(server=self, line=line_parsed)