Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

293
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!