Python 我想机器人发送一个嵌入后,它发送的反应已作出反应

Python 我想机器人发送一个嵌入后,它发送的反应已作出反应,python,discord.py,Python,Discord.py,到目前为止,我已经让机器人响应命令,但现在我希望机器人在有人做出反应后立即响应,这是我尝试过的代码: @client.command() async def war(ctx): embed = discord.Embed(title='War', description='You are starting a war, do you want to continue?', color=0x00000) msg = await ctx.send(embed=embed)

到目前为止,我已经让机器人响应命令,但现在我希望机器人在有人做出反应后立即响应,这是我尝试过的代码:

@client.command()
async def war(ctx): 
    embed = discord.Embed(title='War', description='You are starting a war, do you want to continue?', color=0x00000)
    msg = await ctx.send(embed=embed)
    await msg.add_reaction(emojigood)
    await msg.add_reaction(emojibad)
    
async def on_reaction_add(reaction, user):
  if reaction.emoji == emojigood:
   embed = discord.Embed(title='War', description='Please now choose a country', color=0x00000)
   await channel.send(embed=embed)

下面是一段示例代码,用于解释bot.wait_for()方法使用您的示例,官方文档中也有示例以及有效的方法和属性

@client.command()
异步def war(ctx):
embed=discord.embed(title='War',description='您正在启动一场战争,是否要继续?',color=0x00000)
msg=wait ctx.send(嵌入=embed)
等待味精添加反应(emojigood)
等待消息添加反应(emojibad)
def检查(r):
return(r.emoji==emojigood或r.emoji==emojibad)和r.message==msg
#检查消息是否相同,表情符号是否为已接受的表情符号之一,并返回True或False
r=等待ctx.bot.wait\u for('reaction\u add',check=check)
#这相当于命令中的事件侦听器,它将停止在那里,直到找到满足要求的反应
#(这不会阻止其他命令和函数)
如果r.emoji==emojigood:
embed1=discord.Embed(title='War',description='Please now choose a country',color=0x00000)
等待ctx.send(嵌入=embed1)

不,我的问题不是关于变量。我指的是您的
if
声明。这似乎很奇怪。什么是
emojigood
?我已经创建了两个变量emojigood和emojibad,它们将显示emoji竖起和竖起的大拇指,它们的值是什么?
中的
运算符的结果是一个布尔值:要么
True
要么
False
。因此,将其与
emojigood
进行比较似乎没有意义。你的意思是
if reaction.emoji==emojigood和消息中的'you sure'。内容:
?这些都是我试图测试的东西,if真的应该是问,if reaction.emoji==emojigoodI用print语句尝试了一下,但是当我做出反应时,它没有在终端上打印任何东西。啊,我只是去检查一下,如果你改变了“reaction”在“反应添加”的等待语句中,我认为应该这样做work@Therandomcoder它还需要单引号,我永远记不起在输入命令时做了什么或做了什么,我得到了这个错误回溯(最近一次调用last):文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site packages/discord/ext/commands/bot.py”,invoke-await-ctx.command(ctx)文件/Library/Frameworks/Versions/3.9/site-packages/discord/ext/commands/core.py中的第939行,invoke-await-injected(*.ctx.args,**,**ctx.kwargs)文件“/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/discord/ext/commands/core.py”,第94行,包装