Discord.js 检查 args 中的提及

Discord.js checking for mention in args

嘿,所以我正在制作一个不和谐的机器人,当我用它来检查提及时:message.mentions.members.first(); 它会在用户发送的整个消息中寻找提及。我正在尝试解决这个问题,因为如果用户发送消息 ?ban bla bla bla @user 它将起作用。我只想检查 args[0] 中的提及。那可能吗?我正在使用不和谐 v12。谢谢!

Mentions

USERS_PATTERN 使用 RegEx 检查 string 是否提到了 User。如果 string 与它 returns true 的模式匹配,否则 returns false.

const { MessageMentions: { USERS_PATTERN } } = require('discord.js');

...
  if (!args[0].match(USERS_PATTERN)) return message.channel.send("Please mention a user");
...

这就是我发现的工作...

if(args[0].slice(2).slice(0, -1) !== message.mentions.users.first()?.id) {
  return message.reply("Please start with a user...")
}

args[0].slice(2).slice(0, -1) 如果提及...将是第一次提及的 id...如果提及是第一个 arg,它也将是第一次提及。所以我所做的是获取第一个提及的 ID 并将其与切片的 args[0] 进行比较以查看它们是否匹配,否则它将 return 告诉他们请从用户开始......确保保留message.mentions.users.first()?.id中的?只是在消息中没有提及的情况下,不会导致流程出错,也会return请以用户消息开头。