From 1d3f05a8fe0ca9151909e70094a0cfbf75c0d412 Mon Sep 17 00:00:00 2001 From: dngfx Date: Sun, 23 Sep 2018 11:01:24 +0100 Subject: Add .reloadallmodules, and fix permissions. --- modules/modules.py | 37 +++++++++++++++++++++++++++++++++---- modules/permissions.py | 4 ++-- 2 files changed, 35 insertions(+), 6 deletions(-) (limited to 'modules') diff --git a/modules/modules.py b/modules/modules.py index 0f18b10f..109baeff 100644 --- a/modules/modules.py +++ b/modules/modules.py @@ -3,16 +3,23 @@ class Module(object): def __init__(self, bot, events, exports): self.bot = bot + self.module_name = False + self.silent = False + events.on("received.command.loadmodule").hook(self.load, min_args=1, permission="load-module", help="Load a module", usage="") events.on("received.command.unloadmodule").hook(self.unload, min_args=1, permission="unload-module", help="Unload a module", usage="") + events.on("received.command.reloadmodule").hook(self.reload, - min_args=1, permission="reload-module", help="Reload a module", + min_args=1, permission="reload-module", help="Reoad a module", usage="") + events.on("received.command.reloadallmodules").hook(self.reload_all, + permission="reload-module", help="Reload all modules") + events.on("received.command.enablemodule").hook(self.enable, min_args=1, permission="enable-module", help="Enable a module", usage="") @@ -37,13 +44,35 @@ class Module(object): event["stdout"].write("Unloaded '%s'" % name) def reload(self, event): - name = event["args_split"][0].lower() + name = self.module_name if self.module_name != False else event[ + "args_split"][0].lower() if not name in self.bot.modules.modules: - event["stderr"].write("Module '%s' isn't loaded" % name) + if self.silent == False: + event["stderr"].write("Module '%s' isn't loaded" % name) return self.bot.modules.unload_module(name) self.bot.modules.load_module(name) - event["stdout"].write("Reloaded '%s'" % name) + + if self.silent == False: + event["stdout"].write("Reloaded '%s'" % name) + + def reload_all(self, event): + modules_reloaded = [] + self.silent = True + + for name, value in self.bot.modules.modules.items(): + if name in modules_reloaded: + pass + + self.module_name = name + self.reload(event) + modules_reloaded.append(name) + + event["stdout"].write("Reloaded modules: %s" % \ + " ".join(modules_reloaded)) + + self.silent = False + self.module_name = False def enable(self, event): name = event["args_split"][0].lower() diff --git a/modules/permissions.py b/modules/permissions.py index ff04f7f9..9a7c266e 100644 --- a/modules/permissions.py +++ b/modules/permissions.py @@ -177,7 +177,7 @@ class Module(object): target, registered, permissions = self._get_user_details( event["server"], event["args_split"][0]) - if not registered: + if target.identified_account == None: event["stderr"].write("%s isn't registered" % target.nickname) return @@ -194,7 +194,7 @@ class Module(object): target, registered, permissions = self._get_user_details( event["server"], event["args_split"][0]) - if not registered: + if target.identified_account == None: event["stderr"].write("%s isn't registered" % target.nickname) return -- cgit v1.3.1-10-gc9f91