You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js v14消息日志机器人报错:List item values of ModelType必填

Discord.js v14 消息日志机器人附件上传错误修复

错误原因

直接上传图片/GIF时,这类消息既无文字内容(message.content为空),也无嵌入内容(message.embeds为空数组),你的代码会将content赋值为{ embeds: [undefined] },而Discord API要求嵌入数组的每个元素必须是有效Embed对象,undefined会触发LIST_ITEM_VALUE_REQUIRED错误。

修复后的代码

const { WebhookClient } = require('discord.js');
const client = require('../index');
const wbc = new WebhookClient({
    id: "",
    token: "",
});

module.exports = {
    name: 'messageCreate',
    async execute(message) {
        if (message.channel.id === "1003856060647477298") return;
        
        // 构建webhook发送参数
        const sendOptions = {};
        // 处理文字内容
        if (message.content) {
            sendOptions.content = message.content;
        }
        // 处理嵌入内容(保留原逻辑只取第一个)
        if (message.embeds.length > 0) {
            sendOptions.embeds = [message.embeds[0]];
        }
        // 处理上传的图片/GIF附件
        if (message.attachments.size > 0) {
            sendOptions.files = message.attachments.map(att => att.url);
        }
        
        // 确保有可发送内容时再调用webhook
        if (Object.keys(sendOptions).length > 0) {
            await wbc.send(sendOptions);
        }
    }
}

关键改动说明

  • 拆分原三元表达式的赋值逻辑,分情况构建sendOptions对象,避免生成含undefined的无效嵌入数组
  • 新增附件处理:通过message.attachments获取上传文件的链接,作为files参数传递给webhook
  • 增加空值判断,确保有可发送内容时才调用webhook,避免触发空消息相关错误

内容的提问来源于stack exchange,提问作者SadSenpai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:05:37