discord.py - 如何检查响应消息是否来自作者,同时忽略不和谐机器人中不是作者的其他消息
问题描述
我有这个
async def deletechar(ctx):
em = discord.Embed(title = f"Are you sure you want to erase your character?",color = discord.Color.red())
em.add_field(name = "Yes, delete it please",value = "Y")
em.add_field(name = "Nevermind",value = "N")
await ctx.send(embed = em)
response = await client.wait_for_message('message')
if response.content == 'Y' and ctx.author == response.author:
await ctx.send("Successfully Deleted Character")
elif response.content == 'N' and ctx.author == response.author:
await ctx.send("Not Deleted")
这可能写得不好,尽管它有效,只是如果消息不是作者发出的,它将被踢出功能。我想在上下文中等待作者的响应,同时忽略其他消息,但在执行此操作时不要使用太多 CPU。有什么建议么?
我不希望它挂在这个函数中,因为我希望它能够在等待这个函数时处理来自其他用户的消息
解决方案
用一个check
response = await client.wait_for_message('message', check=lambda m: m.author.id == ctx.author.id)
推荐阅读
- javascript - sapui5 弹出导航到另一个 xmlview
- android - 反应导航没有导航到正确的屏幕
- php - 未检测到 Ajax POST 到 PHP
- thymeleaf - thymeleaf 上的格式编号
- python - 以下两种方法有什么区别?
- firebase - angularfire2 firebase config在离子应用程序中动态切换
- parameters - 将度量值乘以单个值
- javascript - 文件未按正确顺序解析
- browser-cache - 强制跨浏览器重新加载缓存的简单代码
- three.js - 三个js改变directlight的shadow camera的位置