Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

295
Vistas
Obtener 2 últimos mensajes de un usuario específico discord.js

Estoy tratando de obtener los últimos 2 mensajes que alguien envió, pero no pude encontrar cómo. Lo intenté:

 console.log(user.lastMessage) // to get the last one since i was desperate, i also tried lastMessageId

y

 message.channel.messages.fetch({ author: message.author}).then(async (messages) => { console.log(messages.first(2)[1].content) })

El primer método devolvería indefinido. El segundo método también devolvió mensajes de otros usuarios.

Esto es para mi sistema de clasificación, quiero agregar un tiempo de reutilización de 15 segundos entre cada mensaje agregado a la base de datos.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Al usar message.channel.messages.fetch() , obtiene una Collection con todos los mensajes en el canal hasta cierto punto. Pero la cuestión es que la Collection está al revés, lo que significa que los mensajes más nuevos están al principio mientras que los más antiguos están al final. Entonces, solo tiene que realizar una función .find() para ver el primer mensaje donde el autor era una persona específica. Un ejemplo se vería así =>

 const messages = await message.channel.messages.fetch() const userLastMessage = messages.find(msg => msg.author.id === message.author.id)
about 4 years ago · Juan Pablo Isaza Denunciar

0

Obtener no es en absoluto la forma de hacer lo que quieres hacer, ya que buscarías mensajes cada vez que alguien envía un mensaje. Además de eso, en realidad no hay forma de obtener mensajes de un solo miembro (no usuario, los usuarios no son miembros). La pregunta entonces es: ¿qué sucede si alguien no envió un mensaje en los últimos 100 mensajes? traes otros 100? ¿Qué sucede si aún no hablaron en este canal o si nunca antes enviaron un mensaje en el servidor?

La forma correcta de hacer esto es almacenar una marca de tiempo de cuando alguien envió un mensaje, y cuando envían otro mensaje, compararlo con su valor almacenado para verificar si ha pasado suficiente tiempo desde el mensaje anterior.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda