我正在尝试对其进行编码,以便某人可以使用.role <@member>命令将角色分配给其他人,因此它看起来像这样:
.role @Daily Cringe
理想情况下,该机器人将为Daily赋予“角色”角色。但是,它不起作用。
这是代码:
@client.command()
async def role(ctx, member: discord.Member = ctx.author, role: discord.Role):
await ctx.member.add_roles(role)
await ctx.send(f"The role ''**{role}**'' was just given to you")
我尝试将member
的默认值设置为ctx.author
,但随后出现问题:
async def role(ctx, member: discord.Member = ctx.author, role: discord.Role):
^
SyntaxError: non-default argument follows default argument
我试图对其进行更改,以使role
变量的默认值等于None,但这似乎也不起作用。
有什么想法吗?
我使用Visual Studio Code,Python 3.8.6 64位和MacOS Catalina 10.15.7
答案 0 :(得分:0)
您的代码有几个错误。首先,您无法执行member: discord.Member = ctx.author
,因为尚未定义ctx
。您必须将成员的默认值设置为无,并在命令中检查该成员是否为无。
然后,您无法使用ctx.member.add_roles(role)
添加角色。您必须执行member.add_roles(role)
。
@client.command()
async def role(ctx, member: discord.Member = None, role: discord.Role):
if not member:
member = ctx.author
await member.add_roles(role)
await ctx.send(f"The role ''**{role}**'' was just given to you")