Discord js обнаруживает сообщение другого бота

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

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

Вопрос:

Я пытаюсь обнаружить сообщение, которое приходит от другого бота discord. Например, если другой бот discord произнесет слово «captcha», мой бот discord обнаружит это и отправит мне пинг. Надеюсь, есть также способ обнаружить встраивание другого бота, а не только сообщения.

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

1. Привет, я думаю, у каждого сообщения есть свойство user, содержащее флаг, если пользователь является ботом, подобным message.author.bot

Ответ №1:

Вы можете определить, является ли пользователь ботом, используя bot свойство на User .

 // create a message event
client.on('message', (message) => {
 if (message.author.bot) {
  // if the message is a bot
  console.log(`${message.author.username} sent: '${message.content}'`); // you can fetch the message text through `message.content`

  if (message.embeds[0])
   // if the message includes an embed
   console.log(
    `${message.author.username} sent an embed with the title ${message.embeds[0].title}`
   ); // you can fetch the embed content through `message.embeds[0]`
 }
});
  

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

1. работает так, как я хотел, чтобы это было! Единственная проблема, оставшаяся прямо сейчас, заключается в том, что я получил содержимое нужного мне встраивания, которое находится в нижнем колонтитуле. Я хочу поставить условие, что если определенное слово включено в полученную вставку, я помещу реакцию на саму вставку. Кстати, спасибо за помощь ^^

2. Вы могли бы попробовать: if (message.embeds[0].footer.includes('specific word')) message.react(reaction)

3. в нем говорится Cannot read property footer of undefined . Я пытался изменить код, который вы мне прислали, но безрезультатно.

4. Это просто означает, что конкретное сообщение, в котором вы это вызвали, не имеет встроенного

5. Нашел решение проблемы благодаря коду, который вы все еще отправляли, и, задав несколько вопросов, for (var i = 0; i < message.embeds.length; i ) { if (message.embeds[i] amp;amp; message.embeds[i].footer amp;amp; message.embeds[i].footer.text.includes('left')) { message.react('📌') решил его и сделал свое дело. Большое вам спасибо за всю помощь ^^

Ответ №2:

Вы можете получить bot свойство из author (пользовательского объекта)

message.author.bot вернет, true если тот, кто отправил сообщение, является ботом, в противном случае false .

Для вашего обнаружения «captcha» вам просто нужно проверить message.content