如何创建Discord头像命令 avt指令无响应且无报错如何解决
问题原因及解决方案
你遇到的无响应问题核心是discord.js的API写法错误,辅以几个常见的配置疏漏:
- API调用错误:
user.avatarURL是v11及更早版本的属性写法,v12及以后的版本中avatarURL为方法,需要主动调用才能返回头像链接,否则Embed的图片字段为空,会导致发送失败且无报错 - 特权意图未开启:discord.js v13+版本需要在Discord开发者后台的机器人设置中开启
MESSAGE_CONTENT意图,同时在代码初始化Client时传入对应配置,否则机器人无法读取用户发送的消息内容,自然不会响应指令 - 权限缺失:机器人需要在当前频道拥有「发送消息」「嵌入链接」权限,缺少嵌入权限时发送Embed会静默失败
- 命令注册问题:确认你已在主文件中正确注册该
avt命令,且触发前缀和命令名匹配正确
修正后的代码
module.exports = { name: 'avt', description: "获取用户头像", execute(message, args, Discord) { const user = message.mentions.users.first() || message.author; const avatarEmbed = new Discord.MessageEmbed() .setColor(0x333333) .setAuthor(user.username) // 修正avatarURL调用,dynamic为true支持动图,size指定头像尺寸 .setImage(user.avatarURL({ dynamic: true, size: 1024, format: 'png' })); message.channel.send({ embeds: [avatarEmbed] }); } }
注:如果是discord.js v14版本,
MessageEmbed需要改为从discord.js中导入的EmbedBuilder,发送写法保持一致即可
内容的提问来源于stack exchange,提问作者Labib Khan
相关产品推荐
相关产品推荐

