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



我想等待仅由会员发送的私人消息。我正在尝试将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添加检查函数时,该检查函数将获取收到的消息作为参数。这意味着它将检查机器人获得的每条消息,将它们全部传递给您的检查函数,并等到其中一个使检查返回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,正如您明确提到的那样等待私人消息。

最新更新