Discord.js V13 设置按钮冷却时间

Discord.js V13 Set Button Cooldown

我最近制作了我的工单机器人,但我需要为“关闭工单”按钮添加冷却时间以防止有人淹没该按钮并发送多条消息,我还没有找到任何可能的方法来做到这一点.我如何在特定按钮上添加冷却时间?

我的按钮代码:

      const row = new client.discord.MessageActionRow()
        .addComponents(
          new client.discord.MessageButton()
          .setCustomId('confirm-close')
          .setLabel('Fechar o Ticket')
          .setStyle('DANGER'),
          new client.discord.MessageButton()
          .setCustomId('no')
          .setLabel('Cancelar Fechamento')
          .setStyle('SECONDARY'),
        );

        const verif = await interaction.reply({
          content: 'Tem certeza de que deseja fechar o ticket?',
          components: [row]
        });

为了用户识别,我使用 interaction.user.id

一般来说,你可以做这样的事情来冷却时间:

let cooldownTime = 5000; //five seconds
let semaphore = true; //green

function doSomeStuff() {
    if (semaphore) {
        //your logic
        console.log("GREEN");
        semaphore = false; //red
        setTimeout(() => {semaphore = true;}, cooldownTime);
    } else {
        console.log("RED");
    }
}
<input type="button" value="CLICK ME!" onclick="doSomeStuff()">

这只会影响逻辑,但您也可以向其添加按钮 disabling/enabling。