是否可以使用Pycord和www.example.com根据之前的用户选择动态启用/禁用Python Discord斜杠命令中的参数Discord.py?

lb3vh1jj  于 2023-05-21  发布在  Python
关注(0)|答案(1)|浏览(87)

我尝试使用一个命令,通过一个特定的函数将一个通道注册到数据库中,但是我希望一些参数只有在之前做出特定选择时才能启用。

@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,但这还没有显示出禁用或启用参数的方法,只是改变了选择。

ncecgwcz

ncecgwcz1#

要实现所需的功能,即根据所选操作禁用“function”参数或使其成为非必需参数,可以使用Option类的required参数。默认情况下,所有选项都是必需的,但您可以在选择“添加”或“删除”操作时为“功能”选项设置required=False
下面是包含这种方法的代码的更新版本:

@bot.slash_command(name="my_command")
async def command(ctx, 
    action: Option(str, name="action", choices=["add", "remove", "info"]),
    function: Option(str, name="function", required=False)
):
    if action == "add":
        ...
    elif action == "remove":
        ...
    elif action == "info":
        ...

相关问题