簡體   English   中英

RangeError [EMBED_FIELD_VALUE]: MessageEmbed 字段值必須是非空字符串

[英]RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings

所以我目前正在嘗試將我的 Discord 機器人從 V12 更新到 V13,但我目前遇到了一個非常令人沮喪的問題。 所以本質上,我正在創建一種事件命令,人們可以在其中做出反應來參加,每次有人做出反應時,嵌入編輯本身以及問題所在。 那么我是如何做到的 V12 是我通過更新值的函數編輯了消息。

message.edit({
    embeds: [
        await updateEmbed(
            embedPref,
            users[0],
            users[1],
            users[2],
            displayText[0],
            displayText[1],
            displayText[2],
            displayText[3]
        ),
    ],
});

由於錯誤的性質,我認為這不是問題的根源。 這是用於更新嵌入的代碼:

function updateEmbed(option, users1, users2, users3, ...displayText) {
const upatedDndEmbed = new Discord.MessageEmbed()
    .setTitle(`**D&D** at ${displayTime}`)
    .setThumbnail("https://i.imgur.com/u0aN19t.png")
    .setDescription(displayText[0])
    .setColor("DC143C")
    .addFields(
        { name: "\u200B", value: "\u200B" },
        { name: "Campaign:", value: `${displayText[1]}`, inline: true },
        { name: "DM:", value: `${displayText[2]}`, inline: true },
        { name: "Whereabout:", value: `${displayText[3]}`, inline: true },
        { name: "\u200B", value: "\u200B" },
        {
            name: `<:accepted:867150417271324672>Accepted (${users1.length}/${memberCount})`,
            value: users1.length !== 0 ? users1 : "-",
            inline: true,
        },
        {
            name: `<:unsure:867150452423131166>Unsure (${users2.length}/${memberCount})`,
            value: users2.length !== 0 ? users2 : "-",
            inline: true,
        },
        {
            name: `<:denied:867150431612436510>Denied (${users3.length}/${memberCount})`,
            value: users3.length !== 0 ? users3 : "-",
            inline: true,
        }
    )
    .setFooter(`This message was issued by ${msgSender}`)
    .setTimestamp(new Date());

console.log("I got here 2 ");

const upatedGameEventEmbed = new Discord.MessageEmbed()
    .setTitle(`**Game Event** at ${displayTime}`)
    .setThumbnail(
        "https://cdn.discordapp.com/attachments/836600699080671262/855459529763323914/The_Chill_Pill.png"
    )
    .setDescription(displayText[0])
    .setColor("DC143C")
    .addFields(
        { name: "\u200B", value: "\u200B" },
        { name: "Game:", value: `${displayText[1]}`, inline: true },
        { name: "Additional Notes:", value: `${displayText[2]}`, inline: true },
        { name: "\u200B", value: "\u200B" },
        {
            name: `<:accepted:867150417271324672>Accepted (${users1.length}/${memberCount})`,
            value: users1.length !== 0 ? users1 : "-",
            inline: true,
        },
        {
            name: `<:unsure:867150452423131166>Unsure (${users2.length}/${memberCount})`,
            value: users2.length !== 0 ? users2 : "-",
            inline: true,
        },
        {
            name: `<:denied:867150431612436510>Denied (${users3.length}/${memberCount})`,
            value: users3.length !== 0 ? users3 : "-",
            inline: true,
        }
    )
    .setFooter(`This message was issued by ${msgSender}`)
    .setTimestamp(new Date());

const upatedEventEmbed = new Discord.MessageEmbed()
    .setTitle(`**Event** at ${displayTime}`)
    .setThumbnail(
        "https://cdn.discordapp.com/attachments/836600699080671262/855459529763323914/The_Chill_Pill.png"
    )
    .setDescription(displayText[0])
    .setColor("DC143C")
    .addFields(
        { name: "\u200B", value: "\u200B" },
        { name: "Event:", value: `${displayText[1]}`, inline: true },
        { name: "Additional Notes:", value: `${displayText[2]}`, inline: true },
        { name: "\u200B", value: "\u200B" },
        {
            name: `<:accepted:867150417271324672>Accepted (${users1.length}/${memberCount})`,
            value: users1.length !== 0 ? users1 : "-",
            inline: true,
        },
        {
            name: `<:unsure:867150452423131166>Unsure (${users2.length}/${memberCount})`,
            value: users2.length !== 0 ? users2 : "-",
            inline: true,
        },
        {
            name: `<:denied:867150431612436510>Denied (${users3.length}/${memberCount})`,
            value: users3.length !== 0 ? users3 : "-",
            inline: true,
        }
    )
    .setFooter(`This message was issued by ${msgSender}`)
    .setTimestamp(new Date());

return option === 1 ? upatedDndEmbed : option === 2 ? upatedGameEventEmbed : upatedEventEmbed;

}

此代碼在 V12 中運行良好,但現在返回錯誤:

RangeError [EMBED_FIELD_VALUE]: MessageEmbed 字段值必須是非空字符串。

編輯:所以我發現了問題,顯然你不能再將數組作為字段的值了。 這解釋了為什么這不起作用。

嘗試替換您設置的值

users1.length !== 0 ? users1 : "-"

users1 || "-"

也許users1是一個array ,也許users1.length返回給你undefinednull而不是0所以使用它自己看看,如果它仍然不起作用,在創建嵌入使用之前

console.log([users1,users2,users3,displayText...])

確定這些變量到底是什么。

根據https://discordjs.guide/additional-info/changes-in-v13.html#strings需要通過方法.toString()或模板文字進行驗證。 我的代碼沒有。 所以為了解決這個問題,我在所有用戶數組之后添加了.join("\\n") 這基本上用換行符拆分了數組中的所有元素。 固定代碼:

    function updateEmbed(option, users1, users2, users3, ...displayText) {
        const users1Length = users1.length;
        const users2Length = users2.length;
        const users3Length = users3.length;

        const updatedDndEmbed = new Discord.MessageEmbed()
            .setTitle(`**D&D** at ${displayTime}`)
            .setThumbnail("https://i.imgur.com/u0aN19t.png")
            .setDescription(displayText[0])
            .setColor("DC143C")
            .addFields(
                { name: "\u200B", value: "\u200B" },
                { name: "Campaign:", value: `${displayText[1]}`, inline: true },
                { name: "DM:", value: `${displayText[2]}`, inline: true },
                { name: "Whereabout:", value: `${displayText[3]}`, inline: true },
                { name: "\u200B", value: "\u200B" },
                {
                    name: `<:accepted:867150417271324672>Accepted (${users1Length}/${memberCount})`,
                    value: users1Length !== 0 ? users1.join("\n") : "-",
                    inline: true,
                },
                {
                    name: `<:unsure:867150452423131166>Unsure (${users2Length}/${memberCount})`,
                    value: users2Length !== 0 ? users2.join("\n") : "-",
                    inline: true,
                },
                {
                    name: `<:denied:867150431612436510>Denied (${users3Length}/${memberCount})`,
                    value: users3Length !== 0 ? users3.join("\n") : "-",
                    inline: true,
                }
            )
            .setFooter(`This message was issued by ${msgSender}`)
            .setTimestamp(new Date());

        const updatedGameEventEmbed = new Discord.MessageEmbed()
            .setTitle(`**Game Event** at ${displayTime}`)
            .setThumbnail(
                "https://cdn.discordapp.com/attachments/836600699080671262/855459529763323914/The_Chill_Pill.png"
            )
            .setDescription(displayText[0])
            .setColor("DC143C")
            .addFields(
                { name: "\u200B", value: "\u200B" },
                { name: "Game:", value: `${displayText[1]}`, inline: true },
                { name: "Additional Notes:", value: `${displayText[2]}`, inline: true },
                { name: "\u200B", value: "\u200B" },
                {
                    name: `<:accepted:867150417271324672>Accepted (${users1Length}/${memberCount})`,
                    value: users1Length !== 0 ? users1.join("\n") : "-",
                    inline: true,
                },
                {
                    name: `<:unsure:867150452423131166>Unsure (${users2Length}/${memberCount})`,
                    value: users2Length !== 0 ? users2.join("\n") : "-",
                    inline: true,
                },
                {
                    name: `<:denied:867150431612436510>Denied (${users3Length}/${memberCount})`,
                    value: users3Length !== 0 ? users3.join("\n") : "-",
                    inline: true,
                }
            )
            .setFooter(`This message was issued by ${msgSender}`)
            .setTimestamp(new Date());

        const updatedEventEmbed = new Discord.MessageEmbed()
            .setTitle(`**Event** at ${displayTime}`)
            .setThumbnail(
                "https://cdn.discordapp.com/attachments/836600699080671262/855459529763323914/The_Chill_Pill.png"
            )
            .setDescription(displayText[0])
            .setColor("DC143C")
            .addFields(
                { name: "\u200B", value: "\u200B" },
                { name: "Event:", value: `${displayText[1]}`, inline: true },
                { name: "Additional Notes:", value: `${displayText[2]}`, inline: true },
                { name: "\u200B", value: "\u200B" },
                {
                    name: `<:accepted:867150417271324672>Accepted (${users1Length}/${memberCount})`,
                    value: users1Length !== 0 ? users1.join("\n") : "-",
                    inline: true,
                },
                {
                    name: `<:unsure:867150452423131166>Unsure (${users2Length}/${memberCount})`,
                    value: users2Length !== 0 ? users2.join("\n") : "-",
                    inline: true,
                },
                {
                    name: `<:denied:867150431612436510>Denied (${users3Length}/${memberCount})`,
                    value: users3Length !== 0 ? users3.join("\n") : "-",
                    inline: true,
                }
            )
            .setFooter(`This message was issued by ${msgSender}`)
            .setTimestamp(new Date());

        return option === 1
            ? updatedDndEmbed
            : option === 2
            ? updatedGameEventEmbed
            : updatedEventEmbed;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM