等待消息 on_member_join 使用检查 (discord.py) |解决了

Wait for Message on_member_join using checks (discord.py) | SOLVED

我想等会员私信。我正在尝试将 check 参数用于 client.wait_for() 方法,但我似乎无法获取它。我尝试将支票作为 response.author,但不会工作,因为我刚刚分配了 response。此外,当成员使用 on_member_join 加入时,我正在执行此操作,该成员接受 member 参数(例如 async def on_member_join(member)。有人知道如何正确执行此操作吗?任何答案将不胜感激!

这里是代码:

    await member.send('What is your student number? ')
    response = await client.wait_for('message')
    student_number = response.content

wait_for添加检查函数时,该检查函数将接收到的消息作为参数。这意味着它将检查机器人收到的每条消息,将它们全部传递给您的检查功能,并等待其中一个进行检查 return True.

@client.event()
async def on_member_join(member):
    def check(message):
        return message.author.id == member.id and message.guild is None

    await member.send('What is your student number?')
    response = await client.wait_for('message', check=check)
    student_number = response.content

请注意我的示例如何确保 guildNone,正如您明确提到的等待私人消息。