我正在编写一个不和谐的机器人,机器人在直接消息中向用户提问。它会提出问题,等待回复,然后使用反应系统询问用户是否愿意提交此答案。
这个想法是,如果用户用复选标记作出反应,机器人将继续提出下一个问题,如果用户用叉号作出反应,机器人将重复问题。
然而,在实现这一点时,我遇到了一个问题,即机器人在做出反应时什么也不做。这是我的代码:
def message_check(m):
return m.author.id == user.id
def reaction_check(r, u):
return u.id == user.id
for question in server_info["questions"]:
while True:
await user.send(question)
msg = await bot.wait_for("message", check=message_check)
embed = discord.Embed(title="Do you want to submit this answer?", description=msg.content, color=0xff0000)
reply = await msg.reply(embed=embed)
await reply.add_reaction("✅")
await reply.add_reaction("❌")
reaction, user = await bot.wait_for('reaction_add', check=reaction_check)
if reaction.emoji == "✅":
break
elif reaction.emoji == "❌":
continue
我已经看过一些关于堆栈溢出的类似问题。这些都没有帮助我:
discord.py wait_for('reaction_add') functioning differently with direct messages
Discord.py: wait_for('reaction_add') not working as intended
我在代码和不和谐应用程序页面上都启用了服务器成员意图。