Aquí está el código:
const Discord = require('discord.js'); const client = new Discord.Client() const KeepClientOn = require('./KeepClientOn.js') client.on("message", function(message) { message.reply('my message'); }) client.login('client login')después de que se responda el mensaje, quiero que haya un retraso de 5 minutos antes de que pueda responder nuevamente, PERO no responder a ningún mensaje enviado antes de esa fecha. Esto es más o menos lo que quiero: Yo: hola Bot: mi mensaje Yo (2 minutos después): hola de nuevo Bot: (no envía nada) 5 minutos después: Yo: Hola una vez más Bot: mi mensaje
(Perdón por tantas cosas)
Bueno, tengo dos soluciones para ti.
Puede usar setTimeout() , es una función de javascript que solo necesita dos argumentos. La primera es la función que se ejecutará después de un cierto tiempo de espera y la segunda es cuántos milisegundos debe esperar el código antes de realizar esa función.
message.channel.send('Hi!') setTimeout(function(){ message.channel.send('Hi again.. !') },1000 * 10) // 1000 milliseconds multiplied by 10, therefore 10 second.Este es bastante similar al anterior, pero esta vez no pondrás tu código en una función. Simplemente puede crear una función como esta:
let sleep = async (ms) => await new Promise(r => setTimeout(r,ms));Y aquí tiene una función de suspensión, congelará su código actual durante x milisegundos y luego continuará como si nada sucediera,
let sleep = async (ms) => await new Promise(r => setTimeout(r,ms)); message.channel.send('Going to sleep!') await sleep(2000) message.channel.send("I'm awake!!")