我想制作一個機器人,當成員對消息做出反應時,它會為成員添加角色。@client.eventasync 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'
1 回答

一只萌萌小番薯
TA貢獻1795條經驗 獲得超7個贊
這是因為on_raw_reaction_add函數不應該期望接收member參數,而只能接收payload: discord.RawReactionActionEvent參數。
嘗試這個:
@client.event
async 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")
因為它是有關如何從有效負載中獲取所需屬性的示例。
添加回答
舉報
0/150
提交
取消