cooldown: por comandos y reinicio

Agregando tiempo de espera(cooldown) a un usuario según el comando solicitado:

Usamos la función agregarCooldown() para registrar el cooldown al usuario dentro de un comando.

if(command === 'ping'){
dg.utilidad.agregarCooldown(command, message.author.id, {minutos: 1},
(resp, tiempo) =>{
if(resp){
//codigo
let ping = Math.floor(message.client.ping);
message.channel.send(":ping_pong: Pong!, "+ ping + "ms");
} else {
message.channel.send(`FALTAN: ${tiempo.horas} horas, ${tiempo.minutos} minutos y ${tiempo.segundos} segundos, para utilizar nuevamente el comando.`);
}
})
}

Estructura básica en discord.js

const dg = require('discord-gestor');
const Discord = require('discord.js');
const client = new Discord.Client();
client.on('ready', () => {
console.log('listo');
});
let prefix = "!";
client.on('message', (message) =>{
if(message.author.bot) return;
//usamos el metodo command y los argumentos en arrays (opcional).
const args = message.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
//comienzo de comandos
if(command === 'ping'){
dg.utilidad.agregarCooldown(command, message.author.id, {minutos: 1},
(resp, tiempo) =>{
if(resp){
//codigo
let ping = Math.floor(message.client.ping);
message.channel.send(":ping_pong: Pong!, "+ ping + "ms");
} else {
message.channel.send(`FALTAN: ${tiempo.horas} horas, ${tiempo.minutos} minutos y ${tiempo.segundos} segundos, para utilizar nuevamente el comando.`);
}
})
}
//fin de comandos
});
client.login('Token-BOT');

Remover el tiempo de espera(cooldown) a un usuario según el comando solicitado:

Usamos la función removerCooldown() para remover el cooldown al usuario según el comando.

if(command === 'removercd'){
//validamos el comando para que solo sea usado por los usuarios con la
//jerarquia mas alta dentro de un servidor 'ADMINISTRATOR', y el creador del servidor.
let permiso = message.member.hasPermission("ADMINISTRATOR");
// si el usuario no tiene los permisos suficientes retorna un mensaje
if (!permiso) return message.channel.send('No tienes permisos suficientes.');
let mencionado = message.mentions.members.first();
if (!mencionado) return message.channel.send('Debe mencionar a un usuario.');
// creamos una variable para obtener los argumentos despues del usuario mencionado.
let comando = args.slice(1).join(' ');
if (!comando ) return message.channel.send('Debe ingresar el nombre del comando.')
dg.utilidad.agregarCooldown(comando, mencionado.id, (resp) =>{
if(resp){
message.channel.send('Cooldown del usuario fueron removidos correctamente.');
}
})
}

Reiniciar todos los cooldown registrados:

Usamos la función resetCooldown() para reiniciar los tiempos de cooldowns registrados.

if(command === 'resetcd'){
//validamos el comando para que solo sea usado por los usuarios con la
//jerarquia mas alta dentro de un servidor 'ADMINISTRATOR', y el creador del servidor.
let permiso = message.member.hasPermission("ADMINISTRATOR");
// si el usuario no tiene los permisos suficientes retorna un mensaje
if (!permiso) return message.channel.send('No tienes permisos suficientes.');
dg.utilidad.resetCooldown((resp) =>{
if(resp){
message.channel.send('Todos los cooldown registrados fueron removidos.');
}
})
}