es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comprueba si alguien envió el mensaje dos veces.

En mi servidor, tenemos un canal solo para una palabra, “Oi”.

Si alguien envía algo distinto a la palabra “Oi”, se elimina. Pero ahora necesito un código que borre el mensaje si alguien lo envía dos veces seguidas. Deben esperar a que alguien más envíe si quieren hacerlo.

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

if (message.channel.id === "ChannelIdWhichImNotGonnaTell") {
  if (message.content === "Oi") {
    let log = client.channels.cache.get("ChannelIdWhichImNotGonnaTell")
    log.send(`Nuevo Oi de ${message.author.tag}`)
  } else {
    message.delete()
  }
}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para eliminar un mensaje si se envía dos veces seguidas, debemos realizar un seguimiento del mensaje anterior enviado en el canal. Podemos hacer esto almacenando el ID del mensaje anterior en una variable y verificando contra él cada vez que se envía un nuevo mensaje. Aquí está el código actualizado:

    let lastMessageId = null // variable para almacenar el ID del mensaje anterior
    
    if (message.channel.id === "IDDelCanalQueNoVoyADecir") {
      if (message.content === "Oi") {
        if (lastMessageId === message.id) { // comprobar si el mensaje se envía dos veces seguidas
          message.delete() // eliminar el mensaje
        } else {
          lastMessageId = message.id // actualizar la variable del ID del último mensaje
          let log = client.channels.cache.get("IDDelCanalQueNoVoyADecir")
          log.send(`Nuevo Oi de ${message.author.tag}`)
        }
      } else {
        message.delete()
      }
    }
    

    Ahora el código verifica si el ID del mensaje actual es igual al anterior, y elimina el mensaje si lo es. De lo contrario, se actualiza la variable del ID del último mensaje y se envía el mensaje al canal del registro.

Comments are closed.