如何编辑Discord.js嵌入消息并在同一代码块保留新增文本?
问题
我使用Discord.js编辑嵌入消息时编写了以下代码:
nicembed1.data.fields[1].value = '[-] Accessing Pathway...'; // Update the message using the edited original embed msg1.edit({ embeds: [nicembed1] }); nicembed1.data.fields[1].value = '[-] Accessing Pathway 2...'; // Update the message using the edited original embed msg1.edit({ embeds: [nicembed1] });
目前两次更新的内容会显示为两个独立的Discord代码块,我希望它们能显示在同一个代码块中,格式如下:
[-] Accessing Pathway... [-] Accessing Pathway 2...
即内容在同一代码块内换行展示,而非分成两个独立代码块。
解决方案
你当前的写法是直接覆盖fields[1].value的内容,每次更新都会替换成新的单行文本,因此会生成独立的代码块。要实现同一代码块内的换行效果,需要保留代码块格式并追加内容,而非直接替换。
分步追加写法
适合需要逐步更新内容的场景:
// 初始化代码块并写入第一行内容 nicembed1.data.fields[1].value = '```\n[-] Accessing Pathway...'; msg1.edit({ embeds: [nicembed1] }); // 追加第二行内容并闭合代码块 nicembed1.data.fields[1].value += '\n[-] Accessing Pathway 2...\n```'; msg1.edit({ embeds: [nicembed1] });
数组整合写法
适合内容较多或需要动态管理行的场景:
// 存储所有要显示的日志行 const logContent = [ '[-] Accessing Pathway...', '[-] Accessing Pathway 2...' ]; // 生成完整的代码块内容 nicembed1.data.fields[1].value = `\`\`\`\n${logContent.join('\n')}\n\`\`\``; msg1.edit({ embeds: [nicembed1] });
如果后续需要添加新行,只需往logContent数组中push新元素,再重新生成代码块内容并调用edit即可。
内容的提问来源于stack exchange,提问作者Andrew Lea
相关产品推荐
相关产品推荐

