我想创建一个每人每天最多使用两次的命令
这是我的代码:
module.exports = {
name: 'pmention',
description: 'mention private',
execute(message, args) {
if(message.member.roles.cache.has('776430878359814194') || message.member.permissions.has('ADMINSTRATOR')){
message.delete();
message.channel.send('<@&776941870667792395>')
}else{
message.channel.send(':x: **You do not have permission to do that.**')
}
}
}
答案 0 :(得分:1)
您可以使用 Set
来执行此操作,但是如果机器人崩溃或您将其关闭,它不会将用户保留在集合中,为此您可能需要将它们放入数据库或更永久的东西中。
这是一个例子:
let cooldown = new Set();
if(cooldown.has(message.author.id)) {
message.channel.send("You can only use this command twice a day.");
} else {
// Your code here
cooldown.add(message.author.id);
setTimeout(() => {
talkedRecently.delete(msg.author.id);
}, 43200000);
}
43200000
是以毫秒为单位的 12 小时。一天两次相当于每 12 小时一次,但是如果您希望用户能够每天调用它两次,但一个接一个(相隔几秒钟),那么您可能应该考虑使用数据库,例如 SQLite或 MongoDB,然后设置一项作业以每天清除一次他们的条目。