所以我有一个新的Discord机器人,对编程很新,就像我有点理解,但我不能自己做。但是到了这个问题。该bot全部位于.js中(我确实拥有config.json),但我尚未使事件处理程序正常工作。但是我的代码是。
client.on("message", (message) => {
if (message.author.bot) return;
if (message.content.includes ("John")) {
message.channel.send ("Oh yeah, that guy...");
}
}
如何获得全球冷却时间?我希望进行冷却,以便如果发生有关John的麻烦,则该漫游器不会响应每条消息。
答案 0 :(得分:1)
最简单的方法是在侦听器外部创建一个带有时间戳的变量,然后将当前时间戳与范围之外的时间戳进行比较,就像这样
var lastReply = 0;
client.on("message", (message) => {
if (Date.now() - lastReply < 10000) return; // don't respond within 10 seconds
lastReply = Date.now();
if (message.author.bot) return;
if (message.content.includes ("John")) {
message.channel.send ("Oh yeah, that guy...");
}
}
我将其设置为10秒,但是您当然可以从配置中获取它,也可以自行更改。为了清楚起见(易于阅读),您还可以设置一个这样的值(例如5分钟):lastReply < 5 * 60 * 1000
答案 1 :(得分:0)
var cooldown = false;
client.on("message", (message) => {
if (message.author.bot) return;
if (message.content.includes("John")) {
if (cooldown == true) {
//Bot is on a cooldown
return;
} else {
message.channel.send("Oh yeah, that guy...");
cooldown = true;
setTimeout(() => {
cooldown = false
}, 60000); //Timeout for a minute
}
}
}
Kinda不熟悉自己编程的新习惯,但这与我使用的类似。