discord.js - 如何使一个人的命令最大使用 discord.js
问题描述
我想发出一个每人每天最多使用两次的命令
这是我的代码:
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.**')
}
}
}
解决方案
您可以使用 aSet
来执行此操作,但是如果机器人崩溃或您将其关闭,它不会将用户保留在集合中,因为您可能需要将它们放入数据库或更永久的东西中。
这是一个例子:
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 小时。一天两次相当于每十二小时一次,但是如果您希望用户能够每天两次调用它,但一个接一个(相隔几秒钟),那么您可能应该考虑使用数据库,例如 SQLite或 MongoDB,然后设置一个作业以每天一次清除他们的条目。
推荐阅读
- python - 如何在xilinx vitis中添加python
- google-cloud-platform - Google Cloud 中不常见的 ffmpeg
- javascript - 在数组中搜索字符串匹配
- docker - 如何在 docker-compose 中配置网络?
- java - 文本识别器更改保存数据编辑文本的行为
- python - 使用python在ppt中添加视频无法播放
- php - 重力形式:将两种形式的条目数据导出到一个 CSV 文件
- react-native - 按下按钮时验证电子邮件地址
- reactjs - 阻止 Heroku 构建 React 应用程序,并使用本地生产构建进行部署
- r - 加载 csv 后列名不正确