例如,每当有人说“早上好”时,我希望我的机器人回复“早上好”。我已经弄清楚了所有这些,但现在我想在上面放一个计时器,它变得有点复杂。我希望计时器适用于服务器上的所有人。例如,如果有人说早上好,那么我们让机器人等待 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"); }});感谢您提前提供的所有帮助。
1 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
看来您想要此命令的全局冷却时间。
这可以通过立即将值设置为 false,然后 3000 毫秒后将值恢复为 true 来轻松完成
let goodmorning = true;
client.on("message", (message) => {
if (!message.author.bot) {
if (message.content == "good morning") {
if (goodmorning == true) {
message.channel.send("Good morning");
goodmorning = false;
setTimeout(() => goodmorning = true, 3000);
}
}
}
});
添加回答
举报
0/150
提交
取消