Javascript Discord bot嵌入消息错误的长度必须小于等于2048
当我在discord bot中运行用于嵌入消息描述的代码时,我遇到了一个错误 “embed.description:长度必须小于等于2048。” 内容取自API,可以超过6000个。如何根据从API获取的数据制作2个或3个具有不同描述的嵌入消息?而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没有它 这意味着,如果您想将其包含在嵌入的描述中,您需要创建这些“块”并逐个发送它们 您可以创建自己的方法或。
通道#发送()
方法接受一个参数,您可以将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
对象,它有一个文本
属性。我刚刚更新了上面的答案,请检查。