【问题标题】:Avatar command in discord.js not picking up mentionsdiscord.js 中的 Avatar 命令未提及
【发布时间】:2020-03-05 05:02:28
【问题描述】:

这个帖子没有解决我的问题,这就是我再次询问的原因。 I am trying to make a discord.js avatar command, and the mentioning portion doesn't work correctly

当我使用我的头像命令而不提及用户时,它会按预期显示我的头像,但是当我提到用户时,它会显示“未定义的头像”并且不显示头像

module.exports.run = async (Client, msg, args) => {
    let member = msg.mentions.members.first() || msg.author

    let embed = new Discord.RichEmbed()
    .setTitle(`${member.username}'s Avatar`)
    .setImage(member.avatarURL)
    .setColor(0x233f23);

    msg.channel.send(embed)

}

它似乎没有找到提到的用户,但我不知道为什么

在我使用之前

if (!member) member = msg.author

但这仍然给了我同样的问题,所以我从上面链接的线程中应用了修复程序,它仍然是同样的事情。

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    当您在let member = msg.mentions.members.first() 中定义成员时,您正在使用类GuildMember,当您通过let member = msg.author 定义它时,您正在使用类User。请务必检查documentation 您正在使用的内容。

    现在,当您从提及中获取成员时,username 和 avatarURL 都为 null,因为这些属性在成员类中不存在,例如,要获取用户的用户名,您首先需要像这样转到GuildMember 中的user 属性,let username = member.user.username 也可以获取成员昵称,witch 是存在于Member 中的属性。

    在这一切之后,这是您的代码,其中包含我刚刚描述的修复:

    module.exports.run = async (Client, msg, args) => {
        let member = msg.mentions.members.first() || msg.member // Changed from msg.author so that we can work with the same class in both cases
    
        let embed = new Discord.RichEmbed()
            .setTitle(`${member.user.username}'s Avatar`)
            .setImage(member.user.avatarURL)
            .setColor(0x233f23);
    
        msg.channel.send(embed)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2021-12-07
      • 2020-09-11
      • 2020-10-08
      • 1970-01-01
      • 2017-12-17
      • 1970-01-01
      相关资源
      最近更新 更多