aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGravatar jesopo2018-09-13 13:35:05 +0100
committerGravatar jesopo2018-09-13 13:35:05 +0100
commit1eed727bc5a8efaded32035cd1922851d799156c (patch)
treeacc6efcca649bada764ec86781ca9d64d908d9c2 /modules
parentOops, this isn't C#. (diff)
signature
Add !enablemodule and !disablemodule to modules.py
Diffstat (limited to 'modules')
-rw-r--r--modules/modules.py35
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))