From 474224b64e8193c6cbaf38b10707b7fcdff39ea4 Mon Sep 17 00:00:00 2001 From: dece Date: Tue, 3 Nov 2020 16:22:57 +0100 Subject: [PATCH] bot: respect priority field of plugins --- edmond/bot.py | 4 +++- edmond/plugin.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/edmond/bot.py b/edmond/bot.py index 8946cb7..25d5d86 100644 --- a/edmond/bot.py +++ b/edmond/bot.py @@ -151,7 +151,9 @@ class Bot(irc.client.SimpleIRCClient, Logger): def run_plugin_callbacks(self, event): """Run appropriate callbacks for each plugin.""" etype = event.type - for plugin in filter(lambda p: p.is_ready, self.plugins): + plugins = filter(lambda p: p.is_ready, self.plugins) + plugins = sorted(plugins, key=lambda p: p.priority, reverse=True) + for plugin in plugins: callbacks = plugin.callbacks if etype not in callbacks: continue diff --git a/edmond/plugin.py b/edmond/plugin.py index 101f85b..37d82f3 100644 --- a/edmond/plugin.py +++ b/edmond/plugin.py @@ -9,6 +9,7 @@ class Plugin: def __init__(self, bot): self.bot = bot self.name = self.__class__.__name__.lower()[:-6] # Remove "Plugin". + self.priority = 0 self.config = self.__get_config() self.is_ready = self.__check_config()