我尝试使用一个命令,通过一个特定的函数将一个通道注册到数据库中,但是我希望一些参数只有在之前做出特定选择时才能启用。
@bot.slash_command(name="my command")
async def command(ctx,
action: Option(name="action", choices=["add", "remove", "info"]),
function:Option(name="function"):
if action == "add":
...
elif "remove":
...
elif "info"
...
所以我想要的是,当选择“add”或“remove”作为操作时,它会禁用“function”参数或使其成为非必需参数。我可以只使用required=False标志,但我希望如果选择了add/remove操作,函数将获得required=True标志。
我尝试过使用discord.autocompleteContext,但这还没有显示出禁用或启用参数的方法,只是改变了选择。
1条答案
按热度按时间ncecgwcz1#
要实现所需的功能,即根据所选操作禁用“function”参数或使其成为非必需参数,可以使用Option类的required参数。默认情况下,所有选项都是必需的,但您可以在选择“添加”或“删除”操作时为“功能”选项设置
required=False
。下面是包含这种方法的代码的更新版本: