Как создать discord.js команда бота и найти ее в любом месте ответа от пользователя?

#javascript #discord #discord.js

#javascript #Discord #discord.js

Вопрос:

Прямо сейчас у меня это есть, поэтому ниже, если указано только имя пользователя бота, я бы хотел, чтобы, если пользователь указал имя пользователя бота где-нибудь ниже в сообщении, бот это увидел.

Аналогично, это был бы обучающий эксперимент для меня, чтобы понять, как сделать это и с другими словами, например, как найти сообщение с AAPL внутри него, моим следующим шагом было бы найти его в нижнем регистре или с одной буквой, ограниченной и т.д.

  if (message.content.startsWith("<@554504420206051328>")) {
    message.channel.send('My advice to you, is buy AAPL.');
  } else
  

Ответ №1:

.includes() Функция — это та, которую вы ищете :

 if (message.content.includes("<@554504420206051328>")) {
  message.channel.send('My advice to you, is buy AAPL.');
}
  

Вы можете проверить документацию по этой функции, если хотите получить дополнительную информацию.


Теперь что касается второй части вашего вопроса (поиск AAPL в сообщении), она практически такая же, как первая :

 if (message.content.toLowerCase().includes("aapl")) {
  message.channel.send('I found AAPL');
}
  

.toLowerCase() Функция помещает содержимое перехваченного сообщения в нижний регистр. Итак, когда вы ищете aapl , вы на самом деле ищете AAPL , aapl , Aapl и т.д.

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

1. @artvandelay с удовольствием 🙂 Если вы хотите, чтобы она учитывала регистр, вам нужно удалить toLowerCase() часть

2. Вау — это казалось таким простым, не уверен, как я это пропустил. Я также уверен, хотя, поскольку я только начинаю, что все мои ответы бота, вероятно, не должны сопровождаться and else и начинаться с If, lol. Еще раз спасибо!

3. Извините за дополнительный вопрос… Если я использую ее здесь и хочу, чтобы она отображала «не» и «dont» вместо орфографии, нужно ли мне просто дублировать ответ здесь, чтобы он исправил ошибку, или мне нужно углубиться в регулярное выражение? если (message.content. toLowerCase().включает(«Я не хочу никакой очистки»)) { message.channel.send(«скраб — это парень, который не может добиться от меня любви»); } еще

4. @artvandelay исправить орфографическую ошибку действительно сложно. Простым способом было бы дублировать ответ, чтобы зафиксировать каждую ошибку, но это слишком много для небольшого количества, и вы можете забыть / пропустить некоторые орфографические ошибки. Те же проблемы будут возникать при использовании регулярного выражения

5. Спасибо — новичок здесь, так что извините, если эти вопросы … глупые, ха-ха. ценю всю вашу помощь, если у вас есть какие-либо хорошие ресурсы или образцы / шаблоны запуска (если они вообще существуют) для ботов discord, пожалуйста, напишите lmk. еще раз спасибо.