javascript - 使用纯文本而不是提及来定义用户
问题描述
这是命令的代码:
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()
某种方式使用,但不知道如何使用。感谢您的任何帮助!
解决方案
我会用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()));
推荐阅读
- javascript - 修改单行的 ESLint 规则
- ios - TableViewCell 不显示自定义单元格信息
- python - 如何删除熊猫中的这些列序列?
- r - 根据两个同时条件(阈值和计数)分配因子水平
- javascript - 使用 Firefox Scratchpad vs node/JSFiddle 与 JSON.parse 不同的结果
- html - 如何在 AngularJS 中为 div 标签添加验证
- rest - 使用 Spark 处理完全独立的子任务有意义吗?
- php - TimThumb 的 SEO 友好图像
- python - 如何在 Python 中每 3 小时更新一次 URL
- python - python Speech_recognition模块占用麦克风