Básicamente como la función de búsqueda en discordia.
Por ejemplo, si quiero hacer un
!buscar [usuario] [consulta]
y haz que responda
"50 mensajes se ajustan a la consulta"
un bot de contador de palabras sin la base de datos o almacenamiento local básicamente. El bot devolvería 87 en esta consulta
No puedes lamentablemente. Este es el por qué...
La consulta de mensajes se limita a las cuentas de usuario.
Hay muchas formas de solucionarlo, pero la mejor y la más utilizada es obtener una gran cantidad de mensajes en el canal específico.
Todos los puntos finales relacionados con la obtención siempre tienen un límite de 100 elementos por solicitud.
¿Buscando mensajes? 100 mensajes por solicitud. etcétera etcétera.
No hay forma de eludir esto, y la única solución es buscar y volver a buscar y volver a buscar hasta alcanzar cierta cantidad.
// Fetch a 100 messages from a Channel // You can always fetch more and concat() the collections together // <Channel> is a placeholder for guild's text-based channels const messages = await <Channel>.messages.fetch({ limit: 100 }); // Make a filter // In this case, we're finding messages with "hello". Case insensitive const query = (msg) => msg.content.toLowerCase().includes("hello"); // Filter out non-matching messages const matching = messages.filter(query); console.log(matching); // `matching` is Collection<Snowflake, Message>