不和谐.py | 发出静音命令,无法获取成员名称

我正在为我的新 discord bot 设置静音命令,我对 discord.py 的东西还很陌生,不明白出了什么问题。我一直收到未指定成员的错误,但很明显。


我在 youtube 等上尝试了很多教程,但它总是略过一两个细节,所以我无法完全弄清楚。如果有人能更正我的代码,我将不胜感激,因为我仍在学习 discord.py。


@client.command()

async def mute(context, member: discord.Member=None):

    if not member:

        await client.say('Please specify a member')

        return

    role = get(member.server.roles, name="Muted")

    await client.add_roles(member, role)

    await client.say('{member.mention} was muted.')

它只是应该为某人添加静音角色,并完成它。在使用我的禁令和踢命令时,我也遇到了与指定成员相同的问题,它们以相同的方式完成。


我愿意接受所有建议,谢谢!


弑天下
浏览 180回答 1
1回答

海绵宝宝撒

您需要将装饰器更改为 @client.command(pass_context=True). 成员名称被分配给context,保留member默认值。@client.command(pass_context=True)async def mute(context, member: discord.Member=None):    if not member:        await client.say('Please specify a member')        return    role = get(member.server.roles, name="Muted")    await client.add_roles(member, role)    await client.say(f'{member.mention} was muted.')  # You forgot the f另外,我可能只是让转换失败,然后处理错误:@client.command(pass_context=True)async def mute(ctx, member: discord.Member):    role = get(member.server.roles, name="Muted")    await client.add_roles(member, role)    await client.say(f'{member.mention} was muted.')@mute.error:async def mute_error(error, ctx):    if isinstance(error, ConversionError):        await client.send_message(ctx.message.channel, 'Please specify a member')    else:        raise error
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python