discord.py等待多个反应

时间:2019-04-01 00:56:10

标签: python-3.x discord.py

我正在尝试使机器人针对添加的每个绿色复选标记反应说些什么。我已经让该机器人等待反应,但是它只允许一个用户的一个反应,而我希望它添加一个反应,它将执行当前代码;

    @commands.command(pass_context=True)
    async def br(self, ctx):
        msg = await self.Nao.say('Please the reaction I have added.')
        await self.Nao.add_reaction(msg, '✅')
        res = await self.Nao.wait_for_reaction('✅')

但是我希望它允许多个反应而不是一个用户。因此,对于每个添加的反应,它都会说{USER.MENTION}添加了一个反应!

1 个答案:

答案 0 :(得分:1)

您需要将wait_for_reaction放入循环中,以便重复。我还添加了check,以防止该机器人承认自己的反应。

check = lambda reaction, user: client.user != user
while True:
    res = await self.Nao.wait_for_reaction(emoji='\N{WHITE HEAVY CHECK MARK}', message=msg, check=check)
    if res:
        await self.Nao.say(f"{res.user.mention} added a reaction!")