Как мне заставить бота discord отправлять сообщение при упоминании определенного пользователя?

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

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

Вопрос:

Я довольно новичок в javascript и использую Discord.js создать одного или двух ботов Discord. Я работаю над функцией, которая отправляет сообщение при пинге на моем сервере discord. Я пробовал несколько вещей, и ни одна из них не сработала.

У меня есть это до сих пор, он обнаруживает, когда любой пользователь пингуется, а не только я.

 client.on('message', (message) => {
 if (message.mentions.members.first()) {
  message.channel.send('Do not ping this user.');
 }
});
  

Ответ №1:

Вы можете сравнить идентификаторы пользователей. Как получить идентификаторы пользователей.

 if (message.mentions.users.first().id === 'Your ID') // if the person mentioned was you
 return message.channel.send('Do not mention this user');
  

Кроме того, как следует из названия, Collection.first() будет извлекаться первый элемент коллекции. Это означает, что if оператор вернет значение true только в том случае, если первым упоминанием был вы. Например:

 User: 'Hello @you' // detected
User: 'Hello @notYou and @you' // not detected
  

Чтобы обойти это, вы можете использовать Collection.has() :

 // will return true if *any* of the mentions were you
if (message.mentions.users.has('Your ID'))
 return message.channel.send('Do not mention this user');