Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord bot嵌入消息错误的长度必须小于等于2048_Javascript_Node.js_Discord.js_Bots_Embed - Fatal编程技术网

Javascript Discord bot嵌入消息错误的长度必须小于等于2048

Javascript Discord bot嵌入消息错误的长度必须小于等于2048,javascript,node.js,discord.js,bots,embed,Javascript,Node.js,Discord.js,Bots,Embed,当我在discord bot中运行用于嵌入消息描述的代码时,我遇到了一个错误 “embed.description:长度必须小于等于2048。” 内容取自API,可以超过6000个。如何根据从API获取的数据制作2个或3个具有不同描述的嵌入消息?而通道#发送()方法接受一个参数,您可以将split属性设置为true,以便在内容超过字符限制时将其拆分为多个消息,setDescription没有它 这意味着,如果您想将其包含在嵌入的描述中,您需要创建这些“块”并逐个发送它们 您可以创建自己的方法或。

当我在discord bot中运行用于嵌入消息描述的代码时,我遇到了一个错误

“embed.description:长度必须小于等于2048。”

内容取自API,可以超过6000个。如何根据从API获取的数据制作2个或3个具有不同描述的嵌入消息?

通道#发送()
方法接受一个参数,您可以将
split
属性设置为
true
,以便在内容超过字符限制时将其拆分为多个消息,
setDescription
没有它

这意味着,如果您想将其包含在嵌入的描述中,您需要创建这些“块”并逐个发送它们

您可以创建自己的方法或。。。Discord有一个名为inside的助手方法,您可以使用该方法在指定字符处将字符串拆分为不超过特定长度的多个块。默认情况下,它拆分的字符是
\n
。如果您的大文本没有任何换行符,则需要更新并将
char
更改为单个空格(即
splitMessage(text,{char:'})

要创建块,可以使用以下命令:

const chunks=Discord.Util.splitMessage(prettyLongText);
它返回一个数组,因此您可以对结果进行迭代。查看下面的工作代码:

const chunks=Discord.Util.splitMessage(文本[args[0]]);
const embed=new Discord.MessageEmbed().setTitle(`Split me!`);
如果(chunks.length>1){
chunk.forEach((chunk,i)=>
message.channel.send(
嵌入
.setDescription(块)
.setFooter(`Part${i+1}/${chunks.length}`),
),
);
}否则{
message.channel.send(embed.setDescription(chunks[0]);
}

如果使用的是简单的嵌入对象,则需要如下更新:

const chunks=Discord.Util.splitMessage(文本[args[0]]);
如果(chunks.length>1){
chunk.forEach((chunk,i)=>
message.channel.send(
{
嵌入:{
颜色:3447003,
描述:chunk,
页脚:{
text:`Part${i+1}/${chunks.length}`,
},
标题:“分裂我!”,
},
}
),
);
}否则{
message.channel.send({
嵌入:{
颜色:3447003,
description:块[0],
标题:“分裂我!”,
},
});
}
频道#send()
方法接受一个默认值时,您可以将
split
属性设置为
true
以在内容超过字符限制时将其拆分为多条消息,
setDescription
没有该值

这意味着,如果您想将其包含在嵌入的描述中,您需要创建这些“块”并逐个发送它们

您可以创建自己的方法或。。。Discord有一个名为inside的助手方法,您可以使用该方法在指定字符处将字符串拆分为不超过特定长度的多个块。默认情况下,它拆分的字符是
\n
。如果您的大文本没有任何换行符,则需要更新并将
char
更改为单个空格(即
splitMessage(text,{char:'})

要创建块,可以使用以下命令:

const chunks=Discord.Util.splitMessage(prettyLongText);
它返回一个数组,因此您可以对结果进行迭代。查看下面的工作代码:

const chunks=Discord.Util.splitMessage(文本[args[0]]);
const embed=new Discord.MessageEmbed().setTitle(`Split me!`);
如果(chunks.length>1){
chunk.forEach((chunk,i)=>
message.channel.send(
嵌入
.setDescription(块)
.setFooter(`Part${i+1}/${chunks.length}`),
),
);
}否则{
message.channel.send(embed.setDescription(chunks[0]);
}

如果使用的是简单的嵌入对象,则需要如下更新:

const chunks=Discord.Util.splitMessage(文本[args[0]]);
如果(chunks.length>1){
chunk.forEach((chunk,i)=>
message.channel.send(
{
嵌入:{
颜色:3447003,
描述:chunk,
页脚:{
text:`Part${i+1}/${chunks.length}`,
},
标题:“分裂我!”,
},
}
),
);
}否则{
message.channel.send({
嵌入:{
颜色:3447003,
description:块[0],
标题:“分裂我!”,
},
});
}

在我的例子中,嵌入是不同的
embed:{Title:“Session Details”,颜色:3447003,描述:
${msg1}
因此如何设置foo在这里之后,我使用了这个`setFooter:
部分${i+1}/${s_str length}
`但没有任何结果您需要添加一个
页脚
对象,该对象具有
文本属性。我刚刚更新了上面的答案,请检查。在我的情况下,嵌入是不同的
嵌入:{Title:“会话详细信息”,颜色:3447003,描述:
${msg1}
那么我如何设置foo在这里之后,我使用了这个`setFooter:
部分${i+1}/${s_str.length}`但是什么都没有,你需要添加一个
footer
对象,它有一个
文本
属性。我刚刚更新了上面的答案,请检查。