使用纯文本而不是提及来定义用户

时间:2018-10-20 15:51:18

标签: javascript node.js discord discord.js

以下是命令的代码:

if (command === "avatar") {
  let user = message.mentions.users.first() || message.author;
  let embed = new Discord.RichEmbed()
    .setAuthor(`${user.username}`)
    .setImage(user.displayAvatarURL)
    .setColor(0x842cfc);
  message.channel.send(embed),
}

此命令显示指定用户的化身,但是现在,您必须标记指定用户(使他们收到通知)以显示化身。现在命令是.avatar @someuser,但我希望命令是.avatar someuser,所以这里没有提及。
另外,我很确定我需要以某种方式使用client.users.find(),但请以idk的方式使用。谢谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我会使用Guild.members.find()。由于其中包含成员,因此您需要检查用户编写的参数是否与.nickname.user.username相匹配。为了简化一点,我将使用.displayName而不是.nickname,以便始终使用字符串。

// argument: the string after the command, I don't know how you're currently getting it
let user = message.guild.members.find(m => [m.displayName.toLowerCase(), m.user.username.toLowerCase()].includes(argument.toLowerCase()));