Discord.js ответьте, если указано только без строк

#javascript #node.js #discord #discord.js

Вопрос:

Я хочу, чтобы, если кто-то упомянет моего бота, не сказав больше ничего в том же сообщении, бот ответил на него.

Example:@bot

И not:@bot
привет

Это мой текущий код:

 client.on('message', message => {
    if (message.isMemberMentioned(client.user) amp;amp; message.author.id === UserId) {
        message.channel.send('message');
    }
});
 

Комментарии:

1. Вы используете discord.js в11?

2. 11.4.2 если быть точным

Ответ №1:

Решение версии 12 здесь.

Вы можете получить коллекцию упомянутых пользователей с помощью message.mentions.users и сначала проверить, есть ли какой-либо упомянутый пользователь, и если он есть, проверьте, совпадает ли идентификатор первого пользователя с идентификатором бота.

Как только вы проверите, упоминается ли бот, вы сможете увидеть, есть ли какой-либо другой контент:

 client.on('message', (message) => {
  if (message.author.bot) return;

  const args = message.content.split(/  /);
  const mentionedUsers = message.mentions.users;

  const isBotMentioned = mentionedUsers.size
    ? mentionedUsers.first().id === client.user.id
    : false;

  if (isBotMentioned amp;amp; args.length === 1) 
    return message.channel.send(`What now, ${message.author}?`);
});
 

введите описание изображения здесь