如何使用clearInterval()停止Discord Bot中的循环

时间:2019-07-04 22:28:15

标签: javascript loops bots discord discord.js

所以我想要一个在dms中发送垃圾邮件的命令和一个停止垃圾邮件的命令

我到了这里,但是每当我使用'dm stop'而不是仅仅停止命令时,它就会使整个机器人崩溃

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>CLICK</button>
<br>
<div class='title' id='title'>lorem ipsum</div>

在终端上说未定义clearInterval(dmloop)中的“ dmloop”

1 个答案:

答案 0 :(得分:1)

尝试从if中取出间隔变量dmloop,如下所示:

let dmloop = null;
bot.on('message', message => {
    let args = message.content.substring(PREFIX.length).split(" ");
    switch (args[0]) {
        case 'dm':
        if (args[1] === 'spam') {
            const userdm = message.mentions.users.first();
            if(dmloop==null){
                dmloop = setInterval(function() {
                    userdm.send('Hoi');
                }, 1);}
            }
        }
        if (args[1] === 'stop') {
            clearInterval(dmloop);
            dmloop = null;
        } else {
            message.channel.send('What do you want me to do with dms?');
        }
        break;
    })//...