【发布时间】:2021-12-04 18:17:50
【问题描述】:
所以我目前正在尝试将我的 Discord 机器人从 V12 更新到 V13,我目前遇到了一个非常令人沮丧的问题。因此,基本上我正在创建一种事件命令,人们可以在其中做出反应以参加,每次有人对嵌入编辑本身和问题所在做出反应时。那么我是如何做到的 V12 是我通过更新值的函数编辑了消息。
message.edit({
embeds: [
await updateEmbed(
embedPref,
users[0],
users[1],
users[2],
displayText[0],
displayText[1],
displayText[2],
displayText[3]
),
],
});
由于错误的性质,我认为这不是问题的根源。这是Embeds更新的代码:
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 字段值必须是 非空字符串。
编辑:所以我发现了问题,显然你不能将数组作为字段的值。这就解释了为什么这不起作用。
【问题讨论】:
标签: node.js discord.js