Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

294
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda