discord-vatron
Version:
Módulo para facilitar la interacción con la API de Discord
33 lines (29 loc) • 997 B
JavaScript
const EventEmitter = require("events");
module.exports = class Colector extends EventEmitter {
constructor(filtro, opciones) {
super();
if(typeof(filtro) != 'function') return console.error('[DISCORD-VATRON] El filtro del colector debe ser una función');
this.filtro = filtro;
this.tiempo = opciones.tiempo || 120000;
this.finalizado = false;
setTimeout(() => {
if(this.finalizado) return;
this.finalizar('tiempo');
this.finalizado = true;
}, this.tiempo);
}
finalizar(razon) {
if(this.finalizado) return;
this.emit('finalizado', razon || '');
setTimeout(() => {
this.removeAllListeners('recibido');
this.removeAllListeners('finalizado');
}, 500);
}
_enviar(cosa) {
if(this.finalizado) return;
if(this.filtro(cosa)) {
this.emit('recibido', cosa);
}
}
}