使用discord.js-selfbot-v13发送Embed触发空消息错误求助
解决discord.js-selfbot-v13发送Embed提示“无法发送空消息”问题
问题核心原因
你构造的Embed存在无效字段,导致Discord API判定消息为空。常见触发点有两个:
user.avatarURL可能返回undefined(比如用户无自定义头像、缓存未加载),破坏Embed结构user.presence.status如果用户在线状态未被缓存,会返回undefined,导致描述内容异常
修改后的可运行代码
if (!user) { return message.edit(":x: 未知用户!") } // 确保从discord.js-selfbot-v13正确导入MessageEmbed const { MessageEmbed } = require('discord.js-selfbot-v13'); const embed = new MessageEmbed() .setTitle("**用户信息**") .setColor("#00D4FF") // 改用displayAvatarURL,保证始终返回有效头像链接 .setThumbnail(user.displayAvatarURL({ dynamic: true })) // 用可选链式调用+默认值,避免status为undefined的情况 .setDescription(`用户名 - **${user.username}**\n标签 - **${user.discriminator}**\nID - **${user.id}**\n状态 - **${user.presence?.status || '未知'}**\n`) .setFooter({ text: "来源: Discord" }); // 调试用:打印Embed的JSON结构,确认是否有无效字段 console.log(embed.toJSON()); message.channel.send({ embeds: [embed] });
额外注意事项
- 必须确保
MessageEmbed是从discord.js-selfbot-v13库导入的,不要混用普通discord.js的类,两者存在兼容性差异 - 如果修改后仍报错,可以查看
embed.toJSON()的输出结果,检查是否有字段为null或undefined,逐一排查修复
内容的提问来源于stack exchange,提问作者philipp.bkrr
相关产品推荐
相关产品推荐

