Me gustaría saber cómo puedo verificar cuánto tiempo ha pasado desde que se disparó un evento (interactionCreate en mi caso) y hacer algo después de cierta cantidad. Este es mi código actual:
client.once('interactionCreate', interaction => { if (!interaction.isButton()) return; if (interaction.customId == '1') { // do something } else { // do something else } })Verificará cuál de los 2 botones está presionado, pero también quiero verificar si no se presionó ningún botón, digamos, 20 segundos, en ese caso hará algo diferente, como enviar un mensaje, pero lo más importante es que no pueda interactuar. con los 2 botones.
¿Cómo podría hacer esto?
Para hacer algo cierto tiempo después de que se llame al evento, debe usar setTimeout de esta manera:
setTimeout(() => { // do something after 5 seconds }, 5000)Puede crear una variable donde almacena si se hizo clic en otro botón o no, luego, después del tiempo de espera, verifica si la variable es verdadera o falsa.
Toda su lógica se vería así:
let buttonWasClicked = false; client.once('interactionCreate', interaction => { if (!interaction.isButton()) return; if(!buttonWasClicked) buttonWasClicked = true; if (interaction.customId == '1') { // do something } else { // do something else } setTimeout(() => { // after waiting 20 seconds if(buttonWasClicked) { // do something if a button was clicked } else { // do something if no button was clicked } }, 20000) })