Recientemente creé mi bot de boletos, pero necesito agregar un tiempo de reutilización al botón "cerrar boleto" para evitar que alguien inunde el botón y envíe múltiples mensajes, no he encontrado ninguna forma posible de hacerlo. ¿Cómo agregaría un tiempo de reutilización en un botón específico?
Mi código de botón:
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] }); Para la identificación del usuario, estoy usando interaction.user.id
En general, puedes hacer algo como esto para un tiempo de reutilización:
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()">Esto solo afecta la lógica, pero también puede agregarle un botón para deshabilitarlo/habilitarlo.