基本上,如果用户在说明嵌入中输入的字符超过2048个,则嵌入会被拆分为2个嵌入,并将其发送到行会。我不知道如何解决的部分是将嵌入内容拆分为2条消息。因此,首先嵌入直到结尾,直到2048,然后它将发送其他嵌入的消息。
您可以在下面的代码中看到。 如果此$ {test}包含2048以上 然后将其分成2个嵌入
message.author.send(new Discord.RichEmbed().setColor("00FFFF").setDescription( **Here is what you typed:** \n \n **Test:** \n ${test}))
答案 0 :(得分:0)
要分割字符串,可以使用here中提供的方法:如果将字符串与此RegExp {"code":400,"status":"BadRequest","error":"InvalidParams","errorCode":1000,"errorMessage":"Invalid input parameters","errorDetails":{"TitleId":["The TitleId field is required."],"LoginWithCustomIDRequest":["One of the following properties must be defined: CustomId, EncryptedRequest"]}}
匹配,则会得到一个包含所有所需子字符串的Array。您可以使用该数组构建每个嵌入。
以下是您可以用来执行此操作的功能:
/.{1,2048}/g
要实现它,只需调用它即可提供文本和频道。如果您这样:
async function sendEmbeds(text, channel) {
const arr = text.match(/.{1,2048}/g); // Build the array
for (let chunk of arr) { // Loop through every element
let embed = new Discord.RichEmbed()
.setColor("00FFFF")
.setDescription(chunk);
await channel.send({ embed }); // Wait for the embed to be sent
}
}