Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何让机器人对特定的反应作出反应?不和谐_Python_Discord_Discord.py_Discord.py Rewrite - Fatal编程技术网

Python 如何让机器人对特定的反应作出反应?不和谐

Python 如何让机器人对特定的反应作出反应?不和谐,python,discord,discord.py,discord.py-rewrite,Python,Discord,Discord.py,Discord.py Rewrite,我正在尝试向我的discord bot添加一个赠品功能,但是我正在尝试的重新滚动功能不起作用。当赠品结束时,它会发送一条信息,说明谁赢得了赠品。这就是我定义的reroll。然后我让机器人等待,看看是否有人对此消息添加了“x”反应。我试图让它,如果有人添加了一个“x”反应,那么它将重做赠品中的赢家选择。如果多个获奖者无效,我也希望重复此函数。但我不确定如何让机器人对某条消息的特定反应做出特定的反应 reroll = await channel.send(f'Congratulations! {wi

我正在尝试向我的discord bot添加一个赠品功能,但是我正在尝试的重新滚动功能不起作用。当赠品结束时,它会发送一条信息,说明谁赢得了赠品。这就是我定义的reroll。然后我让机器人等待,看看是否有人对此消息添加了“x”反应。我试图让它,如果有人添加了一个“x”反应,那么它将重做赠品中的赢家选择。如果多个获奖者无效,我也希望重复此函数。但我不确定如何让机器人对某条消息的特定反应做出特定的反应

reroll = await channel.send(f'Congratulations! {winner.mention} won {prize}!')

if reroll.reactions == '❌':

    winner2 = random.choice(users)

    await channel.send(f'Congratulations! {winner2.mention} won {prize}!')
根据,我们可以在\u reaction\u add(reaction,user)上检查

当消息中添加了反应时调用。类似 在\u message\u edit()上,如果在内部消息中未找到该消息 缓存,则不会调用此事件。考虑使用 在\u raw\u reaction上,改为\u add()

有了它,您基本上可以检查消息

async def on_reaction_add(reaction, user):
  if 'Congratulations!' in reaction.message.content and reaction.emoji == '❌':
    # do stuff

您可以通过
Reaction.Message

Reaction.Message.content