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.

Error de DiscordAPI: No se puede enviar un mensaje vacío con el Ejemplo de inserción del guía de discord.js.

Acabo de utilizar código de ejemplo incrustado desde aquí y estoy obteniendo
DiscordAPIError: No se puede enviar un mensaje vacío

Aquí está cómo luce en mi código:
“`
const { MessageEmbed } = require('discord.js');

client.on('message', async message=> {

if (message.content === <code>${prefix}ranking</code>) {
// dentro de un comando, evento, etc.
const exampleEmbed = new MessageEmbed()
.setColor('#0099ff')
.setTitle('Some title')
.setURL('https://discord.js.org/')
.setAuthor({ name: 'Some name', iconURL: 'https://i.imgur.com/AfFp7pu.png', url: 'https://discord.js.org' })
.setDescription('Some description here')
.setThumbnail('https://i.imgur.com/AfFp7pu.png')
.addFields(
{ name: 'Regular field title', value: 'Some value here' },
{ name: '\u200B', value: '\u200B' },
{ name: 'Inline field title', value: 'Some value here', inline: true },
{ name: 'Inline field title', value: 'Some value here', inline: true },
)
.addField('Inline field title', 'Some value here', true)
.setImage('https://i.imgur.com/AfFp7pu.png')
.setTimestamp()
.setFooter('Some footer text here', 'https://i.imgur.com/AfFp7pu.png');

message.channel.send({ embeds: [exampleEmbed] });

}

});
“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    El error “DiscordAPIError: No se puede enviar un mensaje vacío” ocurre a menudo al intentar enviar un mensaje vacío en lugar de un embed. En tu código, parece que estás intentando enviar un embed como respuesta a un comando, pero el comando se activa cuando el usuario envía solo el prefijo y no el comando completo. Para solucionar esto, podrías agregar una verificación para asegurarte de que se esté utilizando el comando completo antes de intentar enviar el embed. Por ejemplo:

    if (message.content === `${prefix}ranking`) {
      // resto del código aquí
    } else {
      return; // o alguna otra respuesta, como un mensaje de error
    }
    

    Esto evitará que el código intente enviar un embed vacío cuando el usuario solo envía el prefijo.

Comments are closed.