当我对消息作出反应时,机器人不想添加角色

我想制作一个机器人,当成员对消息做出反应时,它会为成员添加角色。


@client.event

async def on_raw_reaction_add(reaction, member: discord.Member):

    ChID = '678640775747076097'

    if reaction.message != ChID:

        await member.send("Nope")

        return

    else:

        if member.reaction.emoji == ":white_check_mark:":

            Role = discord.utils.get(member.server.roles, id="672473925053055036")

            await client.add_roles(member, Role)

            await user.send("Success")

当我回复消息时,出现以下错误:


TypeError: on_raw_reaction_add() missing 1 required positional argument: 'member'


莫回无
浏览 87回答 1
1回答

一只萌萌小番薯

这是因为on_raw_reaction_add函数不应该期望接收member参数,而只能接收payload: discord.RawReactionActionEvent参数。尝试这个:@client.eventasync def on_raw_reaction_add(payload):    reaction_message_id = payload.message_id    member = payload.member    ChID = '678640775747076097'    if reaction_message_id != ChID:        await member.send("Nope")        return    else:        if member.reaction.emoji == ":white_check_mark:":            Role = discord.utils.get(member.server.roles, id="672473925053055036")            await client.add_roles(member, Role)            await user.send("Success")因为它是有关如何从有效负载中获取所需属性的示例。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python