当前位置: 首页 > 知识库问答 >
问题:

discord中的“MessageEmbed字段值可能不为空”问题。js

夏侯星洲
2023-03-14

我目前正在节点中创建一个discord bot。js,并不断得到这个问题。我正在尝试创建一个help命令,但我想在执行该命令之前确保嵌入和填充工作正常,我一直遇到这个奇怪的错误。我放了两个代码示例,一个是命令的代码,另一个是使命令实际工作的代码。有人能帮忙吗?

module.exports = {
name: 'command',
description: "Commands for the bot!",
execute(message, args, Discord) {
    const newEmbed = new Discord.MessageEmbed()
    .setColor('#304281')
    .setTitle('Commands')
    .setURL('https://discord.com/terms')
    .setDescription('Showing commands..')
    .addFields(
        {name: 'Rule 1', value: ''},
        {name: 'Rule 1', value: ''},
        {name: 'Rule 1', value: ''}
    )
    .setImage('https://blog.logomyway.com/wp-content/uploads/2020/12/discord-mascot.png')
    .setFooter('Bot created by John Adams#7337');

    message.channel.send(newEmbed);
}

}

client.on('message', message => {
if(!message.content.startsWith(prefix) || message.author.bot) return;

const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();

if(command === 'ping'){
    client.commands.get('ping').execute(message, args);
    
} else if (command === 'botinfo'){
    client.commands.get('botinfo').execute(message, args);

} else if (command === 'test'){
    client.commands.get('test').execute(message, args);

} else if (command === 'command'){
    client.commands.get('command').execute(message, args, Discord);
}

});

下面是错误:

C:\Users\Chunko\Desktop\DiscordBot\node_modules\discord.js\src\structures\MessageEmbed.js:432
if (!value) throw new RangeError('EMBED_FIELD_VALUE');
            ^

RangeError[嵌入字段值]:消息嵌入字段值不能为空。在功能上。规范化字段(C:\Users\Chunko\Desktop\DiscordBot\node\u modules\discord.js\src\structures\MessageEmbed.js:432:23)位于C:\Users\Chunko\Desktop\DiscordBot\node\u modules\discord。js\src\structures\MessageEmbed。js:452:14在数组中。函数处的map()。MessageEmbed上的规范化字段(C:\Users\Chunko\Desktop\DiscordBot\node\u modules\discord.js\src\structures\MessageEmbed.js:451:8)。在对象上添加字段(C:\Users\Chunko\Desktop\DiscordBot\node\u modules\discord.js\src\structures\MessageEmbed.js:266:42)。在客户端执行(C:\Users\Chunko\Desktop\DiscordBot\commands\command.js:11:10)。(C:\Users\Chunko\Desktop\DiscordBot\index.js:39:40)在客户端。在MessageCreateAction处发出(events.js:315:20)。对象上的句柄(C:\Users\Chunko\Desktop\DiscordBot\node\u modules\discord.js\src\client\actions\MessageCreate.js:31:14)。单元导出[作为消息创建](C:\Users\Chunko\Desktop\DiscordBot\node\u modules\discord.js\src\client\websocket\handlers\MESSAGE\u CREATE.js:4:32){[Symbol(代码)]:'EMBED\u FIELD\u VALUE'}

共有1个答案

田普松
2023-03-14

这是一个非常简单的错误,你犯了一个非常错误的错误。

不和。js嵌入在嵌入中添加字段时,您需要添加到字段1中的参数<代码>标题或字段名称和2字段的内容或值

但是在你的情况下,你保留了第二个参数,也就是是空的。因此,它删除了这个错误,而不是{name:'规则1',value: ''}你应该这样做{name:'规则1',value:'你的规则在这里不保持为空'}

 类似资料:
  • 我们使用Lucene4.7构建和查询一个相当大的数据集(1亿1千万以上的文档)。 详情: 硬件:Xen VM,8核至强CPU E5-2670 v2,2.5GHz,64 GB RAM 操作系统:Windows Server 2012标准 JVM:以-xmx8000m开始(Lucene使用了其中的45%) Lucene查询是单线程的

  • 我有返回给我一些JSON后端。 我将其解析为我的类: 然后我从服务器(使用rxJava)检索数据,没有任何错误。但是我预料到了一个错误,因为我认为我应该做这样的事情(以防止GSON转换器错误,因为在我的JSON响应中不存在): 在从后端接收数据并将其解析到带有构造函数的SomeData类(不带def值)之后,notNullableValue的值==NULL。 据我所知,在Kotlin中不是可空值可

  • 我是相当新的GraphQL和AWS放大,所以这可能是一个新手的问题。 我已经在模式中定义了下面列出的类型。图ql。如果我使用id:id的类型创建一个变异 ,我得到一个。 如何在AWS amplify graphql中指定字段应为字段?指定对于字段,在AWS amplify workshop中似乎可以正常工作。 ~\amplify\backend\api\vidaudtranscription\sc

  • 我遇到一个项目,ts 未发现某个值可能为空,如上图。正常情况应该如下图。有谁知道可能是哪里出了问题?

  • 在Kotlin中,您可以创建: 然后可以使用它解析JSON,例如“{n:10}”。在这种情况下,您将有一个对象,从、或接收,它包含以下值:。 在Kotlin+GSON-How to get a emptyList when null for data类中,您可以看到另一个示例。 当您以后尝试使用时,您将在这里得到一个异常::“Kotlin.TypeCastException:null不能被强制转换

  • null 我看到的是一般的注释 可用于排除空值。我不能使用此方法,因为我仍然希望在json中看到具有空值的空字段 可以用来排除空值和“不存在”的值。我不能使用这个,因为我仍然想看到JSON中的空字段和空字段。与相同 所以我的问题是,如果我不指定这些属性中的任何一个,我能实现我想要的吗?换句话说,如果我没有指定其中的任何一个,那么Jackson的行为是显示所有在动态意义上具有空值的字段吗?我主要关心