From 1eed727bc5a8efaded32035cd1922851d799156c Mon Sep 17 00:00:00 2001 From: jesopo Date: Thu, 13 Sep 2018 13:35:05 +0100 Subject: Add !enablemodule and !disablemodule to modules.py --- modules/modules.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'modules/modules.py') diff --git a/modules/modules.py b/modules/modules.py index 8e4da8ad..0f18b10f 100644 --- a/modules/modules.py +++ b/modules/modules.py @@ -13,6 +13,13 @@ class Module(object): min_args=1, permission="reload-module", help="Reload a module", usage="") + events.on("received.command.enablemodule").hook(self.enable, + min_args=1, permission="enable-module", help="Enable a module", + usage="") + events.on("received.command.disablemodule").hook(self.disable, + min_args=1, permission="disable-module", help="Disable a module", + usage="") + def load(self, event): name = event["args_split"][0].lower() if name in self.bot.modules.modules: @@ -37,3 +44,31 @@ class Module(object): self.bot.modules.unload_module(name) self.bot.modules.load_module(name) event["stdout"].write("Reloaded '%s'" % name) + + def enable(self, event): + name = event["args_split"][0].lower() + blacklist = self.bot.get_setting("module-blacklist", []) + if not name in blacklist: + event["stderr"].write("Module '%s' isn't disabled" % name) + return + + blacklist.remove(name) + event["stdout"].write("Module '%s' has been enabled and can now " + "be loaded" % name) + + def disable(self, event): + name = event["args_split"][0].lower() + and_unloaded = "" + if name in self.bot.modules.modules: + self.bot.modules.unload_module(name) + and_unloaded = " and unloaded" + + blacklist = self.bot.get_setting("module-blacklist", []) + if name in blacklist: + event["stderr"].write("Module '%s' is already disabled" % name) + return + + blacklist.append(name) + self.bot.set_setting("module-blacklist", blacklist) + event["stdout"].write("Module '%s' has been disabled%s" % ( + name, and_unloaded)) -- cgit v1.3.1-10-gc9f91