def config_set_parse(self, ctx, var, value):
if value in [ "default", "reset", "clear", "none", "null" ]:
return var["default"]
if var["type"] == bool:
if value.lower() in [ "enable", "enabled", "true", "yes" ]:
return True
elif value.lower() in [ "disable", "disabled", "false", "no" ]:
return False
else:
raise UserError("Invalid input. Give me something like `enable` or `disable`")
elif var["type"] == discord.TextChannel:
try:
channel = await commands.TextChannelConverter().convert(ctx, value)
return channel.id
except commands.BadArgument:
raise UserError("Invalid input. Give me a channel reference like `#general`")
elif var["type"] == discord.Role:
try:
channel = await commands.RoleConverter().convert(ctx, value)
return channel.id
except commands.BadArgument:
raise UserError("Invalid input. Give me a role reference like `@BotAdmin`")
elif var["type"] == "GttsLang":
lang = GttsLang.get(value)
if lang is None:
raise UserError("Invalid input. See https://github.com/mdiller/MangoByte/blob/master/resource/json/gtts_languages.json for valid langs")
else:
return lang.lang
else:
raise ValueError("I don't know how to parse this type")
embed.add_field(name="Example", value=f"`?config {var['key']} {var['example']}`")
return embed