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

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

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 Report

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 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!