Use correct arg indexes for private channelset (set.py)

This commit is contained in:
jesopo 2019-01-30 19:07:34 +00:00
parent 051e4347f9
commit b0d67e5170

View file

@ -5,12 +5,13 @@ CHANNELSETADD_HELP = ("Add to a specified channel setting for the "
"current channel") "current channel")
class Module(ModuleManager.BaseModule): 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 = self.exports.get_all(category)
settings_dict = {setting["setting"]: setting for setting in settings} settings_dict = {setting["setting"]: setting for setting in settings}
if len(event["args_split"]) > 1: if len(args) > 1:
setting = event["args_split"][0].lower() setting = args[0].lower()
if setting in settings_dict: if setting in settings_dict:
setting_options = settings_dict[setting] setting_options = settings_dict[setting]
if not setting_options.get("array", False) == array: if not setting_options.get("array", False) == array:
@ -21,7 +22,7 @@ class Module(ModuleManager.BaseModule):
raise utils.EventError( raise utils.EventError(
"You can only 'add' to an array setting") "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) value = setting_options.get("validate", lambda x: x)(value)
if not value == None: if not value == None:
@ -40,7 +41,7 @@ class Module(ModuleManager.BaseModule):
event["stderr"].write("Invalid value") event["stderr"].write("Invalid value")
else: else:
event["stderr"].write("Unknown setting") event["stderr"].write("Unknown setting")
elif len(event["args_split"]) == 1: elif len(args) == 1:
event["stderr"].write("Please provide a value") event["stderr"].write("Please provide a value")
else: else:
shown_settings = [key for key, value in settings_dict.items() shown_settings = [key for key, value in settings_dict.items()
@ -68,7 +69,7 @@ class Module(ModuleManager.BaseModule):
:permission: channelsetoverride :permission: channelsetoverride
""" """
channel = event["server"].get_channel(event["args_split"][0]) 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, @utils.hook("received.command.channelset", channel_only=True,
help=CHANNELSET_HELP) help=CHANNELSET_HELP)