簡體   English   中英

Discord.js v13 [EMBED_FIELD_VALUE]:MessageEmbed 字段值必須是非空字符串

[英]Discord.js v13 [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings

    const key = `${message.guild.id}|${message.channel.id}|${message.id}`;

    if (MESSAGE_CACHE.has(key)) {
      const cachedMessage = MESSAGE_CACHE.get(key);
      const logChannel = message.guild.channels.cache.get(settings.log_channel);
      if (!logChannel) return;

      const embed = new MessageEmbed()
        .setAuthor("Ghost ping detected")
        .setDescription(
          `**Message**:
        ${cachedMessage.content}
        
        **Author:** ${cachedMessage.author.tag} \`${cachedMessage.author.id}\`
        **Channel:** <#${cachedMessage.channelId}>
        `
        )
        .addField("Members", cachedMessage.mentions.members, true)
        .addField("Roles", cachedMessage.mentions.roles, true)
        .addField("Everyone?", cachedMessage.mentions.everyone, true)
        .setFooter("Sent at: " + cachedMessage.createdAt);

      sendMessage(logChannel, { embeds: [embed] });
    }

如果我刪除一條消息,其中包含幽靈 ping,它會返回錯誤Unhandled Rejection at: RangeError [EMBED_FIELD_VALUE]: MessageEmbed field values must be non-empty strings. 知道為什么會發生這種情況,因為這些字段具有值

你放在那里的所有值都不是字符串,所以它會拋出那個錯誤。 另請注意, .mentions.members.mentions.rolesCollection ,而不是 arrays,因此您需要轉換它們。

.addField("Members", `${Array.from(cachedMessage.mentions.members.values()).join(", ") || "None"}`, true)
.addField("Roles", `${Array.from(cachedMessage.mentions.roles.values()).join(", ") || "None"}`, true)
.addField("Everyone?", `${cachedMessage.mentions.everyone}`, true)
.setFooter("Sent at: " + `${cachedMessage.createdAt}`);

.addField創建錯誤,以防止此錯誤,

.addField("Members", `${cachedMessage.mentions.members || "Your word"}`, true)
.addField("Roles", `${cachedMessage.mentions.roles || "Your word"}`, true)
.addField("Everyone?", `${cachedMessage.mentions.everyone || "Your word"}`, true)
.setFooter("Sent at: " + cachedMessage.createdAt);

解釋:如果你的機器人沒有得到任何對某人執行 ping 命令的成員,它不會拋出錯誤,而是發送一個string

暫無
暫無

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

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