首页 > 解决方案 > 我如何使用 wait_for 命令在 discord.py 中寻找两种不同的反应?

问题描述

我有一个机器人,它会询问用户是否确定他们输入了正确的信息,并向他们展示他们输入的内容。我希望他们对正确的竖起大拇指和不正确的竖起大拇指做出反应,但我似乎无法让代码同时查看两者。这就是我所拥有的......有人知道该怎么做吗?

def isUser(reaction, user):
    return user == ctx.author and (str(reaction.emoji) == '' or str(reaction.emoji) == '')
    
try:
    reaction, user = await bot.wait_for('reaction_add', timeout=60, check=isUser)
except asyncio.TimeoutError:
    await msg.edit(embed=embedEnd)
else:
    for i in msg.reactions:
        if i.emoji == '':
            if i.count > 1:
                await msg.edit(embed=embedFin)
        elif i.emoji == '':
            if i.count > 1:
                await msg.edit(embed=embedEnd)

msg是我的机器人的消息。

embedFin是我想在他们反应时展示的嵌入。

embedEnd是我想在他们反应时展示的嵌入。

bot是commands.Bot()。

如果您需要更多信息,请告诉我!感谢:D

标签: discord.py

解决方案


def isUser(reaction, user):
    return user == ctx.author and (str(reaction.emoji) == '' or str(reaction.emoji) == '')
    
try:
    reaction, user = await bot.wait_for('reaction_add', timeout=60, check=isUser)
except asyncio.TimeoutError:
    await msg.edit(embed=embedEnd)
else:
    if str(reaction.emoji) == '':
        await msg.edit(embed=embedFin)
    else:
        await msg.edit(embed=embedEnd)

推荐阅读