python - Discord.py client.say 在事件循环任务中不起作用
问题描述
我正在将 discord.py 用于机器人,并且试图让设置功能在后台运行,同时其他功能也运行。它似乎正在工作,但程序在 client.say 处停止(打印 a 但不打印 b)。我也没有收到任何错误。
async def setup():
embed = discord.Embed(title='Setting game up...',colour=0xff66ff)
print('a')
setupmsg = await client.say(embed=embed)
print('b')
#send message for each person
for i in USER_LIST:
embed = discord.Embed(title=f"{i.name}",colour=0xff66ff)
msg = await client.say(embed=embed)
await client.add_reaction(message=msg,emoji='\u2705')
await client.add_reaction(message=msg,emoji='\u274E')
await client.add_reaction(message=msg,emoji='\u2754')
await client.add_reaction(message=msg,emoji='\U0001F31F')
await client.delete_message(setupmsg)
解决方案
根据文档,您不能await client.say()
在 a 之外@client.command()
您可以尝试将消息参数从事件传递给 coro 并send_message()
改用
就像是
@client.event
async def on_message(message):
if message.author != client.user:
await setup(message)
async def setup(message):
USER_LIST = message.server.members
embed = discord.Embed(title='Setting game up...',colour=0xff66ff)
print('a')
setupmsg = await client.send_message(message.channel,embed=embed)
print('b')
#send message for each person
for i in USER_LIST:
embed = discord.Embed(title=f"{i.name}",colour=0xff66ff)
msg = await client.send_message(message.channel,embed=embed)
await client.add_reaction(message=msg,emoji='\u2705')
await client.add_reaction(message=msg,emoji='\u274E')
await client.add_reaction(message=msg,emoji='\u2754')
await client.add_reaction(message=msg,emoji='\U0001F31F')
await client.delete_message(setupmsg)
推荐阅读
- bash - Openvpn 无法通过基于用户的脚本发送 cURL 请求
- javascript - 如何过滤 django x chart.js 图表?未捕获的类型错误
- javascript - @@iterator- Javascript - 它到底是什么?
- bluetooth-lowenergy - 无法检索 iBeacon UUID(ESP32 BLE 扫描仪)
- android - 如何在 ionic 4 上修复 android 版本 9 的 CORS 问题
- python - 不手动输入名称时无法从页面获取源代码
- java - 嵌套异常是 org.springframework.orm.jpa.JpaSystemException: org.hibernate.PersistentObjectException: 分离的实体传递给坚持:
- c - 无法释放结构的数据
- python - selenium python 脚本出现故障(Python Omagle Bot Script)
- node.js - 使用 Heroku 部署 React 应用程序 + 节点服务器