我正在寻找一个命令,使机器人在2个不同的通道中等待来自用户的2条不同消息上的表情符号反应,但遇到一个问题,机器人首先在第一条消息上等待响应,然后在第二条消息上等待响应,但第二条消息却没有响应时间。我在代码中使用了两个wait_for
。因此,一切正常,首先在代码中先执行wait_for,然后再进行第二次,但是我想一次使它工作。
zapis = await chat_room.send(embed=embed_chat)
await zapis.add_reaction('\U00002611')
def check_z(reaction, user):
return (reaction.message.id == zapis.id) and (user.id == ctx.author.id) and (
str(reaction) == '\U00002611')
try:
reaction, user = await self.client.wait_for('reaction_add', check=check_z, timeout=2400)
except asyncio.TimeoutError:
await ctx.send("Timed out")
if str(reaction) == '\U00002611':
...
def check(reaction, user):
return (reaction.message.id == controller.id) and (user.id == ctx.author.id) and (
str(reaction) in reactions)
try:
reaction, user = await self.client.wait_for('reaction_add', check=check, timeout=2400)
except asyncio.TimeoutError:
await ctx.send("Timed out")
return
if str(reaction) == '❌':
...
if str(reaction) == '✅':
...
if str(reaction) == '?':
...