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

106
Views
Comprobar si alguien envió el mensaje dos veces

En mi servidor, tenemos un canal para una sola palabra, "Oi" .

Si alguien envía algo que no sea la palabra "Oi" , se elimina. Pero ahora necesito un código que elimine el mensaje si alguien lo envía dos veces seguidas. Tienen que esperar a que alguien más envíe si quieren enviar.

Este es mi código actual si quieres comprobarlo por alguna razón:

 if (message.channel.id === "ChannelIdWhichImNotGonnaTell") { if (message.content === "Oi") { let log = client.channels.cache.get("ChannelIdWhichImNotGonnaTell") log.send(`New Oi By ${message.author.tag}`) } else { message.delete() } }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Hay varios trabajos para esto. Pero descubrí que esta es la manera eficiente de hacerlo.

Como dijiste 'Tienen que esperar a que alguien más envíe oi', entonces debes buscar el "mensaje anterior" antes del "mensaje nuevo" que se envió. e intente obtener el ID de usuario. Luego compárelo con el nuevo mensaje.

Aquí está el código de ejemplo:

 if (message.content === 'Oi') { message.channel.messages.fetch({limit: 2}) .then(map => { let messages = Array.from(map.values()); let msg = messages[1]; if (msg.author.id === message.author.id){ message.delete(); // do something } else { let log = client.channels.cache.get("ChannelID") log.send(`New Oi By ${message.author.tag}`) }}).catch(error => console.log("Error fetching messages in channel")); }

Comparará el ID de usuario del autor de "mensajes antiguos" con el ID de usuario del autor de "mensajes nuevos". Si es partido. Entonces será borrado.

about 4 years ago · Juan Pablo Isaza Report

0

Puede fetch() los dos últimos mensajes usando la opción de limit y el last() en la colección devuelta será el penúltimo mensaje en el canal (el anterior al último que activó su código).

Luego puede comparar las identificaciones del author ; si son iguales, puedes borrar el mensaje:

 if (message.channel.id === oiChannelID) { if (message.content === 'Oi') { // fetch the last two messages // this includes this one and the previous one too let lastMessages = await message.channel.messages.fetch({ limit: 2 }); // this is the message sent before the one triggered this command let previousMessage = lastMessages.last(); if (previousMessage.author.id === message.author.id) { console.log('No two Ois, mate'); message.delete(); // don't execute the rest of the code return; } let log = client.channels.cache.get(logChannelID); log.send(`New Oi By ${message.author.tag}`); } else { message.delete(); } }

ingrese la descripción de la imagen aquí

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!