首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我正在试着冷却,但它不起作用

我正在试着冷却,但它不起作用
EN

Stack Overflow用户
提问于 2021-07-11 18:32:00
回答 2查看 32关注 0票数 1

我正在尝试使用talkedRecently进行冷却,但它不起作用,请帮助我。

代码语言:javascript
复制
const talkedRecently = new Set();
module.exports = {
    name: 'c',
    description: 'c!',
    execute(message, args) {
        if (talkedRecently.has(message.member.id)) {
            message.channel.send("You should wait 1 minute before use this command again")
        } else if(!talkedRecently.has(message.member.id)){
            message.channel.send("Your id sucsesfully added to talkedRecently")
            talkedRecently.add(message.member.id)
            setTimeout(() => {talkedRecently.delete(message.author.id), 60000})
            console.log(talkedRecently)
        }
    },
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-11 18:54:42

首先,我们需要做一套新的

代码语言:javascript
复制
var cooldown = new Set()

在你的消息事件中,让机器人检查用户是否处于冷却状态

代码语言:javascript
复制
if(cooldown.has(msg.author.id)) return msg.reply("You're in cooldown")

如果用户未处于冷却状态,则将他添加到冷却状态并回复他

代码语言:javascript
复制
cooldown.add(message.author.id)

我们需要在给他一段时间后解除他的冷却时间,使用setTimeout

代码语言:javascript
复制
setTimeout(() => {
   cooldown.delete(message.author.id)
},3500)
票数 0
EN

Stack Overflow用户

发布于 2021-07-11 18:54:17

这是因为您的setTimeout语法是错误的。这应该是语法。

代码语言:javascript
复制
setTimeout(() => { talkedRecently.delete(message.author.id); }, 60000);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68335377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档