diff options
Diffstat (limited to 'modules/modules.py')
| -rw-r--r-- | modules/modules.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/modules/modules.py b/modules/modules.py index 12023cc4..557e82ba 100644 --- a/modules/modules.py +++ b/modules/modules.py @@ -26,8 +26,9 @@ 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) - self._catch(name, lambda: self.bot.modules.load_module(self.bot, name)) + self._catch(name, lambda: self.bot.modules.load_module(self.bot, definition)) event["stdout"].write("Loaded '%s'" % name) @utils.hook("received.command.unloadmodule", min_args=1) @@ -46,8 +47,8 @@ class Module(ModuleManager.BaseModule): def _reload(self, name): self.bot.modules.unload_module(name) - self.bot.modules.load_module(self.bot, name) - + definition = 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): """ @@ -66,25 +67,26 @@ class Module(ModuleManager.BaseModule): :help: Reload all modules :permission: reload-all-modules """ - reloaded = [] - failed = [] + success = [] + fail = [] for name in list(self.bot.modules.modules.keys()): try: - self._reload(name) + self.bot.modules.unload_module(name) except ModuleManager.ModuleWarning: continue except: - failed.append(name) - continue - reloaded.append(name) + fail.append(name) + load_success, load_fail = self.bot.load_modules(safe=True) + success.extend(load_success) + fail.extend(load_fail) - if reloaded and failed: + if success and fail: event["stdout"].write("Reloaded %d modules, %d failed" % ( - len(reloaded), len(failed))) - elif failed: + len(success), len(fail))) + elif fail: event["stdout"].write("Failed to reload all modules") else: - event["stdout"].write("Reloaded %d modules" % len(reloaded)) + event["stdout"].write("Reloaded %d modules" % len(success)) @utils.hook("received.command.enablemodule", min_args=1) def enable(self, event): |
