gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 08:20:10 25 4
gpt4 key购买 nike

我正在为我的新不和谐机器人设置一个静音命令,我对不和谐.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.')

它只是应该将静音角色添加给某人,然后就完成了。在使用我的禁令和踢命令时指定成员时,我也遇到了同样的问题,这都是以相同的方式完成的。

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

最佳答案

您需要将装饰器更改为@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

关于python - 不和谐.py |发出静音命令,无法获取成员名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54698569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com