From fa3fc7e3fb957801a860fce70683fe1c48cf81a1 Mon Sep 17 00:00:00 2001 From: jesopo Date: Mon, 5 Nov 2018 12:27:11 +0000 Subject: @utils.hook doesn't work outside of modules! --- src/IRCBot.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/IRCBot.py b/src/IRCBot.py index f7e0dfe9..befc2a72 100644 --- a/src/IRCBot.py +++ b/src/IRCBot.py @@ -27,6 +27,7 @@ class Bot(object): self.add_socket(Socket.Socket(self._trigger_server, lambda _, s: None)) self._trigger_functions = [] + self.events.hook("timer.reconnect", self._timed_reconnect) def trigger(self, func: typing.Callable[[], typing.Any]=None): self.lock.acquire() @@ -127,13 +128,15 @@ class Bot(object): pass del self.servers[server.fileno()] - @utils.hook("timer.reconnect") - def reconnect(self, event: EventManager.Event): - server = self.add_server(event["server_id"], False) + def _timed_reconnect(self, event: EventManager.Event): + if not self.reconnect(event["server_id"]): + event["timer"].redo() + def reconnect(self, server_id: int) -> bool: + server = self.add_server(server_id, False) if self.connect(server): self.servers[server.fileno()] = server - else: - event["timer"].redo() + return True + return False def set_setting(self, setting: str, value: typing.Any): self.database.bot_settings.set(setting, value) -- cgit v1.3.1-10-gc9f91