如何在discord.js 中创建定时布尔值

例如,每当有人说“早上好”时,我希望我的机器人回复“早上好”。我已经弄清楚了所有这些,但现在我想在上面放一个计时器,它变得有点复杂。我希望计时器适用于服务器上的所有人。例如,如果有人说早上好,那么我们让机器人等待 3 秒钟。我尝试了几种不同的解决方案,但没有一个有效,所以我想看看是否可以在这里获得任何帮助。


let goodmorning = true;

client.on("message", (message) => {

if (!message.author.bot) {

     if (message.content == "good morning") {

            if (goodmorning == true) {

                message.channel.send("Good morning");

                setInterval(() =>

                goodmorning = false, 3000);

            } else {

                setTimeout(goodmorning = true, 3000);    

            }

     }

}

});


我还尝试了在网上找到的其他解决方案。我在第 3 行收到“语法错误:意外标识符”,尽管第 5 行非常相似:


client.on("message", (message) => {

if (!message.author.bot) {

long lastTrueTime;

boolean timedgm() {

        long now = System.currentTimeMillis();

     if (message.content == "good morning") {

            lastTrueTime = now;

            return true;

        }


        if (lastTrueTime+3000<now)

            return false;

        return true;

}

        message.channel.send("Good morning");

  }

});


感谢您提前提供的所有帮助。


泛舟湖上清波郎朗
浏览 101回答 1
1回答

宝慕林4294392

看来您想要此命令的全局冷却时间。这可以通过立即将值设置为 false,然后 3000 毫秒后将值恢复为 true 来轻松完成let goodmorning = true;client.on("message", (message) => {&nbsp; if (!message.author.bot) {&nbsp; &nbsp; if (message.content == "good morning") {&nbsp; &nbsp; &nbsp; if (goodmorning == true) {&nbsp; &nbsp; &nbsp; &nbsp; message.channel.send("Good morning");&nbsp; &nbsp; &nbsp; &nbsp; goodmorning = false;&nbsp; &nbsp; &nbsp; &nbsp; setTimeout(() => goodmorning = true, 3000);&nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; }});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript