aboutsummaryrefslogtreecommitdiff
path: root/modules/set.py
diff options
context:
space:
mode:
Diffstat (limited to 'modules/set.py')
-rw-r--r--modules/set.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/modules/set.py b/modules/set.py
index 1852bc52..082117fb 100644
--- a/modules/set.py
+++ b/modules/set.py
@@ -5,12 +5,13 @@ CHANNELSETADD_HELP = ("Add to a specified channel setting for the "
"current channel")
class Module(ModuleManager.BaseModule):
- def _set(self, category, event, target, array):
+ def _set(self, category, event, target, array, arg_index=0):
+ args = event["args_split"][arg_index:]
settings = self.exports.get_all(category)
settings_dict = {setting["setting"]: setting for setting in settings}
- if len(event["args_split"]) > 1:
- setting = event["args_split"][0].lower()
+ if len(args) > 1:
+ setting = args[0].lower()
if setting in settings_dict:
setting_options = settings_dict[setting]
if not setting_options.get("array", False) == array:
@@ -21,7 +22,7 @@ class Module(ModuleManager.BaseModule):
raise utils.EventError(
"You can only 'add' to an array setting")
- value = " ".join(event["args_split"][1:])
+ value = " ".join(args[1:])
value = setting_options.get("validate", lambda x: x)(value)
if not value == None:
@@ -40,7 +41,7 @@ class Module(ModuleManager.BaseModule):
event["stderr"].write("Invalid value")
else:
event["stderr"].write("Unknown setting")
- elif len(event["args_split"]) == 1:
+ elif len(args) == 1:
event["stderr"].write("Please provide a value")
else:
shown_settings = [key for key, value in settings_dict.items()
@@ -68,7 +69,7 @@ class Module(ModuleManager.BaseModule):
:permission: channelsetoverride
"""
channel = event["server"].get_channel(event["args_split"][0])
- self._set("channelset", event, channel, False)
+ self._set("channelset", event, channel, False, 1)
@utils.hook("received.command.channelset", channel_only=True,
help=CHANNELSET_HELP)