El colector no terminará, incluso si hay un tiempo establecido en 1.
const filter = msg => msg.author.id === message.author.id; const collector = new MessageCollector(message.channel, filter, { max: 3, time: 5000, }) collector.on('collect', collector => { console.log(`${collector.content}`) }) collector.on('end', collected => { console.log(`${collected.size}`) })El constructor toma argumentos (channel, options) y no (channel, filter, options) . El filter debe ser parte del objeto de options . Ver documentos .
En este momento, está pasando la función de filter en lugar de un objeto de options , seguido de lo que debería ser un objeto de options pero en realidad es solo un tercer argumento superfluo ignorado.
Esta es la forma correcta:
const collector = new MessageCollector(message.channel, { filter, max: 3, time: 5000 })