diff options
| author | 2018-09-13 13:35:05 +0100 | |
|---|---|---|
| committer | 2018-09-13 13:35:05 +0100 | |
| commit | 1eed727bc5a8efaded32035cd1922851d799156c (patch) | |
| tree | acc6efcca649bada764ec86781ca9d64d908d9c2 /modules | |
| parent | Oops, this isn't C#. (diff) | |
| signature | ||
Add !enablemodule and !disablemodule to modules.py
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/modules.py | 35 |
1 files changed, 35 insertions, 0 deletions
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="<module-name>") + events.on("received.command.enablemodule").hook(self.enable, + min_args=1, permission="enable-module", help="Enable a module", + usage="<module-name>") + events.on("received.command.disablemodule").hook(self.disable, + min_args=1, permission="disable-module", help="Disable a module", + usage="<module-name>") + 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)) |
