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

301
Vistas
¿Cómo podría hacer que la función setTimeout(function(){message.delete();} elimine un Discord Message Embed?

Me estoy metiendo en javascript, o más específicamente en discord.js y he decidido intentar hacer un bot de moderación. Creé un comando de prohibición, y después de prohibir al usuario, envía un mensaje incrustado que muestra la información de la prohibición, como el motivo de la prohibición, la etiqueta del usuario, etc. Decidí usar la función setTimeout para eliminar la incrustación después de 5 segundos. Pero, no puedo averiguar cómo hacerlo. Sé exactamente cómo usar la función setTimeout, es solo que no sé qué hacer para eliminar la inserción. Aquí está mi código:

 let kickEmbed = new Discord.MessageEmbed() .setTitle('Member Kicked!') .setColor("GREEN") .addFields( {name: `Member:`, value: `${memberTarget}`}, {name: `Moderator`, value: `${message.author}`}, {name: `Reason`, value: `${kickReason}`} ) await message.channel.send({embeds: [kickEmbed]}) setTimeout(function(){ kickEmbed.delete(); }, 5000);

El problema es el "kickEmbed.delete();" parte. No se que poner ahi. kickEmbed no funciona, msg no funciona, el mensaje tampoco funciona. Aquí hay un error si eso ayuda: 'kickEmbed.delete' is not a function

puede alguien ayudarme a resolver esto?

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

0

 setTimeout(function(newArg) { newArg.delete(); }, 5000, KickEmbed);

No me gusta hacer publicaciones, pero la primera parte de la solución es comprender lo que envía a un tiempo de espera. Si no envía argumentos, es una llamada global y si se actualiza/cambia o se elimina, se producen errores en el código, por lo que es óptimo pasar el valor que pretende usar aquí. La segunda parte es la discordia y su uso adecuado. GL

about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto se debe a que lo está ejecutando en el propio objeto MessageEmbed . Haga que guarde el mensaje enviado en una variable, en lugar del objeto incrustado

 let kickEmbed = new Discord.MessageEmbed() .setTitle('Member Kicked!') .setColor("GREEN") .addFields( {name: `Member:`, value: `${memberTarget}`}, {name: `Moderator`, value: `${message.author}`}, {name: `Reason`, value: `${kickReason}`} ) let sentMessage = await message.channel.send({embeds: [kickEmbed]}) setTimeout(function(){ sentMessage.delete(); }, 5000)
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