Я пробовал искать другие примеры, чтобы решить эту проблему самостоятельно, но я новичок в кодировании в целом, и я очень новичок в java скрипте, поэтому заранее прошу прощения за любые глупые ошибки, которые я совершаю .
По сути, я изучаю javascript, и я подумал, что хорошим интерактивным способом обучения будет создание бота Discord, чтобы я мог «видеть» окупаемость своих усилий и, следовательно, поддерживать мою мотивацию. Я решил, что спам-бот basi c будет хорошей отправной точкой, чтобы познакомить меня с большинством основных аспектов c.
После некоторого исследования я нашел метод « setInterval » что казалось идеальным для приложения, которое я задумал. Этот метод будет выполнять строку кода через каждый заданный интервал времени.
Так что я могу заставить своего бота спамить канал Discord, но эта проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы он остановился.
client.on('message', message => { //reacting when ever the 'message' EVENT occurs (e.g. a message is sent on a text channel in discord)
console.log('A message was detected and this is my reaction');
console.log(message.author + ' also knows as ' + message.author.username + ' said:\t' + message.content); //message.author is the value of the person who sent the message, message.content is the content of the message
if(message.author.bot) {
return null //returns nothing if the message author is the bot
} else if (message.content.startsWith(`${prefix}spam`)) {
let timerId = setInterval(() => { //starts to spams the channel
message.channel.send('spamtest');
}, 1500);
} else if (message.content.startsWith(`${prefix}stop`)) {
clearInterval(timerId);
message.channel.send('condition met');
}
});
Ошибка, которую я получаю, заключается в том, что timerId не определен. Итак, я подумал, что это локальная переменная, и теперь я в тупике. Я не знаю, что еще попробовать, и я сильно расстроился из-за чего-то такого простого, поэтому я надеялся, что кто-то здесь может помочь.
Спасибо