discord - 使用检查等待消息 on_member_join (discord.py) | 解决了
问题描述
我想等待仅由会员发送的私人消息。我正在尝试使用该方法的check
参数,client.wait_for()
但我似乎无法得到它。我尝试将支票作为 ,response.author
但由于我刚刚分配response
. 此外,当成员加入时,我正在执行此操作,使用on_member_join
which 接受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
请注意我的示例如何确保guild
is None
,正如您明确提到的等待私人消息一样。
推荐阅读
- react-native - 如何防止 React Native 中的断词?
- arrays - 从 MongoDB 3.6 中的两个集合中获取患者信息
- java - 为什么传递参数时方法声明无效?
- python-3.x - 当查询包含来自多个数据库的表的连接时,如何在 boto3 中设置 QueryExecutionContext?
- python - 获取 TypeError:“bool”类型的对象没有 len() 在一个简单的 Snake 游戏中
- docker - 来自守护程序的错误响应:构建容器的拉取访问被拒绝,存储库不存在或可能需要“docker login”
- javascript - 如何测试帖子
- ios - 当点击导航按钮太快时反应原生崩溃
- javascript - 使用 javascript 检查来自 forEach 响应的所有条件的更有效方法
- ios - 如何在 React Native 中显示数学公式?