好的,比方说,我想创建一个命令,该命令接受每次冷却并显示在嵌入中。我得到了嵌入部分,但是,每当我尝试“获得”冷却时间时,它都无济于事。我把每个地图都放在不同的js文件上,这是问题所在,但是,有什么我可以做的,所以我不必重写主文件上的所有内容吗?
以下是每个带有冷却时间的命令的代码示例:
const cooldownsdaily= new Map();
const duration = require ('humanize-duration');
这是用于设置
cooldownsdaily.set(message.author.id, Date.now() + 86400000);
setTimeout(() => cooldownsdaily.delete(message.author.id), 86400000);
最后一个是我当前用来检查它是否已执行的一个命令,无论是在冷却命令还是在日常命令中
const cooldowndaily = cooldownsdaily.get(message.author.id);
if (cooldowndaily) {
var remainingdaily = duration(cooldowndaily - Date.now(), { units: [`h`,`m`,`s`], language: "es" , round: true})
} if (!cooldowndaily) {
var remainingdaily = ':white_check_mark:'
}
注意:如果有人可以帮助我,请解释一下(如果有)解决方案以便我可以学习,我将非常高兴。我不只想要代码:<,如果代码看起来很糟糕,我也很抱歉,我有点乞gg
答案 0 :(得分:0)
如果要对一个特定命令设置冷却时间,请添加let cooldown = new Set();
和:
let cdseconds = 30;
到命令的顶部,然后在该命令的下面添加以下内容:
let cooldownReply = new Discord.MessageEmbed()
.setColor("RANDOM")
.setTitle(message.author.tag + " Slow it down bruh..")
.setDescription(
"You're on cooldown! Please wait before using this command again!"
);
if (cooldown.has(message.author.id)) {
message.delete();
return message.channel.send(cooldownReply);
}
cooldown.add(message.author.id);
setTimeout(() => {
cooldown.delete(message.author.id);
}, cdseconds * 1000);
这将使一个命令的冷却时间降低30秒。如果要对所有命令进行冷却,只需不确定以下内容,只需在顶部的第4-7行添加let cooldown = new Set(); let cdseconds = 30;
:vip_lists = [
["1.0.1.1", "1.0.1.2", "1.0.1.3", "1.0.1.4"]
["1.0.2.1", "1.0.2.2", "1.0.2.3", "1.0.2.4"]
["1.0.0.1", "1.0.0.2", "1.0.0.3", "1.0.0.4"]
]
。还要确保也将我上面发送的嵌入内容添加到所有命令中。抱歉,这听起来令人困惑,请告诉我!