Как я могу исправить эту ошибку в моем коде команды say discord.js

#javascript #discord #discord.js

#javascript #Discord #discord.js

Вопрос:

Я пытаюсь создать пользовательскую команду embed say, в которой бот отправил бы серию вопросов, а затем пользователь ответил бы на нее (например, вопрос: «Введите заголовок», Сообщение пользователя: «Классный заголовок»). Мой код и сообщение об ошибке приведены ниже.

Код:

 
var embed = new Discord.MessageEmbed()
.setColor('#7289da')

var userEmbed = new MessageEmbed()

module.exports = {
    name: 'sayc',
    description: "Custom embed say command",
    execute(message, args){
        embed.setTitle("Construct your custom embed message by answering the questions below");
        embed.setFooter("Enter 'skip' for any question if you would like to leave that element out")
        embed.setDescription("1. Enter the channel you would like the bot to send this message in");
        message.channel.send(embed);
        const channel = message.guild.channels.cache.get(args.slice(0).join(""));
        
        embed.setDescription("2. Enter the title of your embedded message");
        message.channel.send(embed);
        const title = args.slice(0).join("");
        if (title != "skip"){
            userEmbed.setTitle(title);
        }

        embed.setDescription("3. Enter the URL of your title");
        message.channel.send(embed);
        const url = args.slice(0).join("");
        if (url != "skip"){
            userEmbed.setURL(url);
        }

        embed.setDescription("4. Enter the author");
        message.channel.send(embed);
        const author = args.slice(0).join("");
        if (author != "kip"){
            userEmbed.setAuthor(author);
        }

        embed.setDescription("5. Enter the description");
        message.channel.send(embed);
        const description = args.slice(0).join("");
        if (description != "skip"){
            userEmbed.setDescription(description);
        }

        embed.setDescription("5. Enter the thumbnail (link)");
        message.channel.send(embed);
        const thumbnail = args.slice(0).join("");
        if (thumbnail != "skip"){
            userEmbed.setThumbnail(thumbnail);
        }

        embed.setDescription("6. Enter how many fields you would like");
        message.channel.send(embed);
        const fieldsn = args.join();
        if (fieldsn != "skip" || fieldsn != "0" ){
            for (var i = 0; i <= fieldsn; i  ){
                embed.setDescription("6. Enter the name of this field");
                message.channel.send(embed);
                var fieldname = args.slice(0).join("");
                embed.setDescription("6. Enter the value of this field");
                message.channel.send(embed);
                var fieldvalue = args.slice(0).join("");
                userEmbed.addField(fieldname, fieldvalue, true)
            }
        }

        embed.setDescription("7. Enter the image you would like attached");
        message.channel.send(embed);
        const image = args.slice(0).join("");
        if (image != "skip" ){
            userEmbed.setImage(image);
        }

        embed.setDescription("8. Enter the timestamp");
        message.channel.send(embed);  
        const timestamp = args.slice(0).join("");
        if (timestamp != "skip"){
            userEmbed.setTimestamp(timestamp);
        }

        embed.setDescription("9. Enter the footer");
        message.channel.send(embed);
        const footer = args.slice(0).join("");
        if (footer != "skip"){
            userEmbed.setFooter(footer);
        }

        channel.send(userEmbed);
    }
}
  

Ошибка:

 if (!name) throw new RangeError('EMBED_FIELD_NAME');
               ^

RangeError [EMBED_FIELD_NAME]: MessageEmbed field names may not be empty.
  

Комментарии:

1. Пожалуйста, разместите свой соответствующий код здесь, а не на внешнем сайте.

2. Также измените свой заголовок, чтобы задать последовательный вопрос. Список тегов и ключевых слов не дает большой ясности сообществу, к которому вы обращаетесь за помощью.

Ответ №1:

Ваша вторая строка гласит:

 var userEmbed = new MessageEmbed()
  

Это должно было быть:

 var userEmbed = new Discord.MessageEmbed()