关于python:传递3个参数的Discord.py语法错误

Discord.py syntax error from passing 3 arguments

我目前正在开发小型Discord机器人,并且收到以下错误消息:

1
2
3
async def redeemkey(ctx, *, member, *, key):
                                    ^
Syntax Error: invalid syntax

这是我的代码:

1
2
3
4
5
@client.command()
async def redeemkey(ctx, *, member, *, key):
    if key[keys] == True:
        role = discord.utils.get(member.server.roles, name='authenticated')
        await client.add_roles(member, role)

我尝试过在参数中进行切换,但似乎无法正确处理。

任何帮助将不胜感激!


由于要为成员提供正确的密钥,因此要为其赋予角色,因此您的函数中不需要*。我们可以从ctx.author抓取成员,然后从命令中获取key

可以使用ctx.guild.roles代替使用member.server.roles。服务器已在discord.py的v1.0中更改为公会。

如果keys是您的字典,则应使用keys[key],而不是key[keys]

1
2
3
4
5
@client.command()
async def redeemkey(ctx, key):
    if key in keys:
        role = discord.utils.get(ctx.guild.roles, name='authenticated')
        await client.add_roles(ctx.author, role)