diff options
| author | 2018-08-28 14:55:08 +0100 | |
|---|---|---|
| committer | 2018-08-28 14:55:08 +0100 | |
| commit | b699c120a0894e464d7b2ae972ce13adbfcc54b8 (patch) | |
| tree | 3d93f3f1f841d641bc30994f69fd0261e4206b42 /EventManager.py | |
| parent | Switch to time.monotonic for comparisons, only send data at most once every .5 (diff) | |
| signature | ||
Change how specific events assure their hooks gets the event independant of
loading order
Diffstat (limited to 'EventManager.py')
| -rw-r--r-- | EventManager.py | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/EventManager.py b/EventManager.py index 23faba1b..33d4aa80 100644 --- a/EventManager.py +++ b/EventManager.py @@ -53,6 +53,9 @@ class EventHook(object): self._call_notify = None self._stored_events = [] + def _make_event(self, kwargs): + return Event(self.bot, self.name, **kwargs) + def _get_path(self): path = [self.name] parent = self.parent @@ -69,8 +72,8 @@ class EventHook(object): self._hooks.sort(key=lambda x: x.priority) if replay: - for event in self._stored_events: - callback.call(event) + for kwargs in self._stored_events: + callback.call(self._make_event(kwargs)) self._stored_events = None def _unhook(self, hook): @@ -95,17 +98,20 @@ class EventHook(object): def call_for_result(self, default=None, max=None, **kwargs): results = self.call(max=max, **kwargs) return default if not len(results) else results[0] + def assure_call(self, **kwargs): + if not self._stored_events == None: + self._stored_events.append(kwargs) + else: + self.call(kwargs) def call(self, max=None, **kwargs): self.bot.log.debug("calling event: \"%s\" (params: %s)", [self._get_path(), kwargs]) start = time.monotonic() - event = Event(self.bot, self.name, **kwargs) + event = self._make_event(kwargs) if self._call_notify: self._call_notify(self, event) - if not self._stored_events == None: - self._stored_events.append(event) called = 0 returns = [] for hook in self._hooks: |
