首页 > 解决方案 > Discord.js Avatar 命令无法提及用户

问题描述

如果我检查自己的头像,我的代码工作正常,但当我提到用户时没有工作

这是我的代码:

client.on('message', message => {
  if (message.content === `${prefix}ava`) {
    const taggedUser = message.mentions.users.first() || message.author;
    const avatarEmbed = new Discord.RichEmbed()
        .setColor(0xFFC0CB)
        .setAuthor(`${taggedUser.tag} - ${taggedUser.presence.status}`)
        .setImage(taggedUser.avatarURL({ format: "png", dynamic: true, size: 1024 }));
    message.channel.send(avatarEmbed);
  }
});

标签: javascriptdiscord

解决方案


尝试使用displayAvatarURL

您还应该检查是否message.mentions.users.size包含提及:

  const embed = new Discord.RichEmbed()
    .setColor(0xFFC0CB)
    .setImage(`${message.author.displayAvatarURL}`)
    .addField('Your avatar:', `[Image URL](${message.author.displayAvatarURL})`, true)

  if (!message.mentions.users.size) {
    return message.channel.send(embed)
  }

  const user = message.mentions.users.first() || message.author
  const embed2 = new Discord.RichEmbed()
    .setColor(0xFFC0CB)
    .setImage(`${user.displayAvatarURL}`)
    .setThumbnail(`${user.displayAvatarURL}`)
    .addField(`${user.username}'s avatar:`, `${user.displayAvatarURL}`, true)

  message.channel.send(embed2)

推荐阅读