#javascript #node.js #discord.js
#javascript #node.js #discord.js
Вопрос:
Я делаю это так, что если я наберу @Wide#9256, он ответит
вот мой код:
if (message.mentions.members.first() !== undefined) {
if (message.mentions.members.first().id === bot.user.id) {
const embed = new Discord.MessageEmbed()
.setTitle("Prefix")
.setDescription('My Prefix is "!"')
.setFooter('Type !help for more information')
.setThumbnail(bot.user.displayAvatarURL())
.setColor('RANDOM')
message.channel.send(embed)
}
}
Но в этом коде он также отвечает, если я сказал что-то вроде «Привет @Wide # 9256 h», я хочу, чтобы он отвечал, если это только «@Wide # 9256» и ничего больше.
Я пытался
if (message.content === message.mentions.members.first().id === bot.user.id)
Не работает, заранее благодарю
Комментарии:
1. Не могли бы вы напрямую сравнить с bot.user.id без промежуточного сравнения?
Ответ №1:
В этом случае вам просто нужно напрямую сравнить содержимое сообщения с необработанным форматом упоминания ( <@ID>
)
// this leaves no spaces for anything before or after the mention
if (message.content === bot.user.toString()) { // generates mention format
// ...
};
Комментарии:
1. Теперь это как-то не работает, неделю назад это работало, а теперь нет
Ответ №2:
Исправленный код:
if(message.mentions.members.first() amp;amp; message.content.split(' ').length === 1) {
// Your code here
}
Как это работает:
message.content.split(' ')
Возвращает массив всех частей сообщения в виде отдельных элементов, разделенных ' '
символом . Для получения дополнительной информации: https://www.w3schools.com/jsref/jsref_split.asp
Комментарии:
1. Как насчет
'@Person#0000test'