aboutsummaryrefslogtreecommitdiff
path: root/modules/set.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-01-10 22:40:57 +0000
committerGravatar jesopo2019-01-10 22:41:35 +0000
commit0e9d2b318050b08774e8fd4a87ac98722541a169 (patch)
treebc0dc729dc43635616cdb03cff6c33b68189ddeb /modules/set.py
parentDon't have duplicate repo full name in `ping` events (github.py) (diff)
signature
Add !unset and !channelunset (and !channelunsetoverride) (set.py)
Diffstat (limited to 'modules/set.py')
-rw-r--r--modules/set.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/modules/set.py b/modules/set.py
index 649173cb..6da5679e 100644
--- a/modules/set.py
+++ b/modules/set.py
@@ -144,3 +144,33 @@ class Module(ModuleManager.BaseModule):
"""
setting = event["args_split"][0]
self._get(event, setting, "", self.bot.get_setting(setting, None))
+
+ def _unset(self, event, setting, category, target):
+ settings = self.exports.get_all(category)
+ settings_dict = {setting["setting"]: setting for setting in settings}
+ setting = setting.lower()
+
+ if setting in settings_dict:
+ target.del_setting(setting)
+ event["stdout"].write("Unset %s" % setting)
+ else:
+ event["stderr"].write("Unknown setting")
+
+ @utils.hook("received.command.unset", min_args=1)
+ def unset(self, event):
+ """
+ :help: Unset a specified user setting
+ :usage: <setting>
+ """
+ self._unset(event, event["args_split"][0], "set", event["user"])
+
+ @utils.hook("received.command.channelunset", min_args=1,
+ require_mode="high")
+ @utils.hook("received.command.channelunsetoverride", min_args=1,
+ permission="channelunsetoverride")
+ def channel_unset(self, event):
+ """
+ :help: Unset a specified user setting
+ :usage: <setting>
+ """
+ self._unset(event, event["args_split"][0], "set", event["user"])