我正在尝试使机器人针对添加的每个绿色复选标记反应说些什么。我已经让该机器人等待反应,但是它只允许一个用户的一个反应,而我希望它添加一个反应,它将执行当前代码;
@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}添加了一个反应!
答案 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!")