我如何使用wait_for命令在discord.py中查找两个不同的反应?

时间:2020-08-10 00:39:12

标签: discord.py

我有一个机器人,询问用户是否确定他们输入了正确的信息,并向他们显示了输入的内容。我希望他们对正确表示赞许,对不正确表示反对,但是我似乎无法让代码同时找出两者。这就是我所拥有的...有人知道怎么做吗?

public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    
    if([pickerView isEqual: typeView]){
        return wineTypes.count
    }
    if([pickerView isEqual: rateView]){
        return wineRate.count
    }
}

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是当他们与react反应时想要显示的嵌入。

embedFin是我想与react反应时显示的余烬。

embedEnd是commands.Bot()。

让我知道您是否需要更多信息!谢谢:D

1 个答案:

答案 0 :(得分:0)

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)