Разработка Discord Bot: Как мне остановить этот бесконечный цикл? - PullRequest
0 голосов
/ 30 сентября 2018

Это вызывает и извлекает URL-адрес собаки из random.dog, при публикации ссылки на журнал она останавливается на единице, однако при использовании message.channel.send ниже она запускает бесконечный цикл вызова, что будет лучшим способомчтобы предотвратить это и отправить только одну ссылку, затем остановить до тех пор, пока она не будет вызвана снова?

const animals = require('relevant-animals')

client.on("message", (message) => {                   
if(message.content.includes("dog")){ 
animals.dog().then(s => message.channel.send(s)) ; 
animals.dog().then(s => console.log(s)) ;
};

Ниже журнала консоли после одного запроса отправляется одна ссылка This is console log after one request it sends one link

Ниже, после отправки на канал, он просто публикует ссылки без остановки, а не только одну, как показано в консоли

This is after send to channel

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Вы можете просто сделать это:

if(message.author.bot) return;

Это не только остановит бот от выполнения команд и т. Д., Но и запретит любому боту использовать ваш бот.

Так какон проверяет автора сообщения, если свойство бота возвращает true, оно будет return;.

И если свойство бота возвращает false, оно будет работать как обычно - только для таких пользователей, как вы, я и многие другие!

Вы можете попробовать это, выполнив следующий код:

console.log(message.author.bot);

Он будет записывать логическое значение свойства bot автора сообщения. Вы можете узнать больше о логических значениях (true / false) здесь.

0 голосов
/ 30 сентября 2018

Ваш бот отвечает сам на себя, исключите его за ответ самому себе, используя message.author.bot.

if(message.author.bot === false) {
   // Do something if message doesn't come from a bot.
}

Надеюсь, это поможет!

...