diff options
Diffstat (limited to 'modules/modules.py')
| -rw-r--r-- | modules/modules.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/modules.py b/modules/modules.py index 557e82ba..25a2c289 100644 --- a/modules/modules.py +++ b/modules/modules.py @@ -6,8 +6,10 @@ from src import ModuleManager, utils class Module(ModuleManager.BaseModule): def _catch(self, name, func): try: - func() + return func() except ModuleManager.ModuleNotFoundException: + raise utils.EventError("Module '%s' not found" % name) + except ModuleManager.ModuleNotLoadedException: raise utils.EventError("Module '%s' isn't loaded" % name) except ModuleManager.ModuleWarning as warning: raise utils.EventError("Module '%s' not loaded: %s" % ( @@ -26,7 +28,8 @@ class Module(ModuleManager.BaseModule): name = event["args_split"][0].lower() if name in self.bot.modules.modules: raise utils.EventError("Module '%s' is already loaded" % name) - definition = self.bot.modules.find_module(name) + definition = self._catch(name, + lambda: self.bot.modules.find_module(name)) self._catch(name, lambda: self.bot.modules.load_module(self.bot, definition)) event["stdout"].write("Loaded '%s'" % name) @@ -47,7 +50,8 @@ class Module(ModuleManager.BaseModule): def _reload(self, name): self.bot.modules.unload_module(name) - definition = self.bot.modules.find_module(name) + definition = self._catch(name, + lambda: self.bot.modules.find_module(name)) self.bot.modules.load_module(self.bot, definition) @utils.hook("received.command.reloadmodule", min_args=1) def reload(self, event): |
