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()