首页 > 解决方案 > 命令冷却 10 秒不工作不和谐机器人

问题描述

我想添加冷却时间并编写此代码,但不起作用,您能告诉我错误在哪里吗?很感谢。

client.on('message', message => {
        const helloSet = new Set();
if (helloSet.has(message.author.id)) {
    const expirationTime = helloSet.get(message.author.id) + 10000; // 10000 is cooldow

    
let user1 = message.author;

      let user = message.author;
      if (message.mentions.users.first()) {
        user = message.mentions.members.first().user
   }
           if (now < expirationTime) {
        const timeLeft = (expirationTime - now) / 1000;
        return message.reply(`Ожидайте ${timeLeft.toFixed(1)} перед выдачей печеньки`);
} else {
      helloSet.add(message.author.id)
           if (user !== user1) {
            if (message.content.includes(``)) {
               db.add(`${user.id}_cockie`, 1);
      setTimeout(() => {
        helloSet.delete(message.author.id)
      }, 10000)


}}}}});

标签: node.jsdiscord.js

解决方案


你可以试试这个!


// First, this must be at the top level of your code, **NOT** in any event!
const talkedRecently = new Set();
Now in the command event add this:

    if (talkedRecently.has(msg.author.id)) {
            msg.channel.send("Wait 1 minute before getting typing this again. - " + msg.author);
    } else {

           // the user can type the command ... your command code goes here :)

        // Adds the user to the set so that they can't talk for a minute
        talkedRecently.add(msg.author.id);
        setTimeout(() => {
          // Removes the user from the set after a minute
          talkedRecently.delete(msg.author.id);
        }, 60000);
    }

资源


推荐阅读