You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人meme命令无法为发送的嵌入消息添加反应问题求助

问题分析与解决方案

你遇到的问题很清晰——你的代码里创建了两条独立的回复消息,最后把反应加到了第二条空消息上,而非你期望的那条带meme嵌入的消息。

我来拆解下你的代码逻辑:

  1. await ctx.reply(embed=meme):这一步已经成功发送了带嵌入的回复消息,但你没有把这条消息的对象保存下来。
  2. msg = await ctx.reply():这一步又额外发送了一条新的、空的回复消息,后续的加反应操作都作用在了这条空消息上,所以看起来嵌入消息没有反应。

修正后的代码

async def meme(ctx):
    content = get("https://meme-api.herokuapp.com/gimme").text
    data = json.loads(content)
    meme = discord.Embed(title=f"{data['title']}", color=discord.Color.random()).set_image(url=f"{data['url']}")
    # 直接保存发送嵌入消息的对象
    msg = await ctx.reply(embed=meme)
    # 给这条带嵌入的消息添加反应
    await msg.add_reaction(reaction1)
    await msg.add_reaction(reaction2)

关键改动说明

  • 移除了多余的await ctx.reply()调用,直接将发送嵌入消息的返回结果赋值给msg变量。
  • 现在msg指向的就是那条带meme嵌入的回复消息,后续的add_reaction操作会正确作用在它上面。

另外小提一句:Color = discord.Color.random()里的等号建议改成小写的color,更符合Python的PEP8编码规范,不过这不会影响功能运行~

内容的提问来源于stack exchange,提问作者scotttt-6969

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 18:27:43