Как остановить бесконечную команду l oop на боте Discord? - PullRequest
0 голосов
/ 13 июля 2020

Допустим, я сделал бесконечную команду для своего бота. Можно ли в любой момент остановить l oop? Я хочу иметь возможность остановить его с сервера, а не в реальном коде.

Пример:

    if(msg.content ===  "Just Monika"){
    msg.channel.send('Just Monika')
    }
})

Есть ли способ, которым я могу ввести что-то в чате, и он останавливает команда? спасибо.

1 Ответ

1 голос
/ 13 июля 2020

Заставить вашего бота бесконечно реагировать на себя, вероятно, не лучшая идея. Но просто для обучения, очень возможно делать то, что вы sh.

Вы можете создать другую фразу (назовем ее командой остановки), установив логическую переменную в вашем коде в значение true. Затем, всякий раз, когда команда цикла запускается сообщением пользователя или собственным сообщением, она должна проверить, истинно ли это логическое значение, указывающее ей на остановку. Если это так, он должен установить для него значение false и не отправлять это сообщение, иначе он должен просто отправить это сообщение как обычно.

// The following should be defined in the outmost scope
let loopPhrase = "Just Monika";
let stopPhrase = "Stop Spamming The API";

let triggerStop = false;

// The following should be a part of the message event
if (msg.content === loopPhrase) {
    if (!triggerStop) msg.channel.send(loopPhrase);
    else triggerStop = false;
} else if (msg.content === stopPhrase) triggerStop = true;
...