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

Discord机器人随机回复命令图片显示异常求助

解决Discord Embed中图片链接无法渲染为图片的问题

问题出在你把图片链接直接放到了embed.setDescription()里——Discord的Embed组件不会自动将描述字段里的URL渲染成图片,只有专门的图片字段(比如setImage())才会展示图片内容。我们需要添加一个判断逻辑,区分文本回复和图片链接,分别处理。

修改后的主文件代码

const { jokeResponses } = require('./jokeResponses.js');
case "joke":
var response = jokeResponses[Math.floor(Math.random()*jokeResponses.length)];
embed.setColor('#f299cd')
embed.setTitle(`${message.author.username}'s joke`)

// 判断是否为图片链接(匹配常见图片后缀)
const imageRegex = /\.(png|jpg|jpeg|gif|webp)$/i;
if (imageRegex.test(response)) {
    // 如果是图片链接,设置Embed图片
    embed.setImage(response);
    // 可添加自定义描述文本,让内容更完整
    embed.setDescription("给你整个笑话图😆");
} else {
    // 文本回复正常设置描述
    embed.setDescription(response);
}

message.channel.send(embed);
break;

代码说明

  • 用正则表达式/\.(png|jpg|jpeg|gif|webp)$/i检测回复内容是否为图片链接,覆盖了常见图片格式且不区分大小写。
  • 若检测到是图片链接,调用embed.setImage()传入链接,Discord就会自动将其渲染为图片展示在Embed中;同时可以补充简短描述文本,让Embed内容更连贯。
  • 普通文本回复则保持原有setDescription()的逻辑,不影响原本的文本展示效果。

这样修改后,当随机到图片链接时,Embed就能正常展示图片,而不是纯文本链接啦~

内容的提问来源于stack exchange,提问作者ghilasson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:38:15