我该如何编辑与机器人绑定的已发送嵌入内容?首先,我构造了一个嵌入:
const countdownEmbed = {
color: 0x0099ff,
title:('Countdown'),
author: {
name:`${user_name}`,
icon_url: `${user_pfp}`,
},
description: 'Your countdown starts in **3 seconds**',
thumbnail: {
url: `${client_pfp}`,
},
timestamp: new Date(),
footer: {
text: `© ${client_name}`,
icon_url: `${client_pfp}`,
},
};
然后我进行了新的嵌入:
const countdownEmbed2 = {
title:("New title!"),
description: 'Your countdown starts in **2 seconds**',
};
创建“已更新”嵌入后,我尝试发送消息,然后过一秒钟对其进行编辑:
message.channel.send({ embed: countdownEmbed })
.then((msg)=> {
setTimeout(function(){
msg.edit(countdownEmbed2);
}, 1000)
});
我的代码仅发送初始嵌入,不对其进行编辑。但是,如果我将CountEmbed2
中的msg.edit(countdownEmbed2)
更改为字符串,它将在Discord中编辑消息本身,但不会编辑嵌入内容。有没有办法来解决这个问题?还是有一种更简单的方法来编辑嵌入?
答案 0 :(得分:1)
我不确定为什么,但是经过测试后,我得出的结论是您的问题是由您编写嵌入内容的方式引起的。
如果您使用MessageEmbed
构造函数(如果您使用discord.js v11是RichEmbed
),它将起作用。
在测试时有效:
const countdownEmbed = new MessageEmbed()
.setDescription('test1')
const countdownEmbed2 = new MessageEmbed()
.setDescription('test2')
.setColor('RED')
message.channel.send({ embed: countdownEmbed }).then((msg) => {
setTimeout(function () {
msg.edit(countdownEmbed2);
}, 1000)
})
答案 1 :(得分:0)
以下是编辑示例
const editEmbed = new Discord.MessageEmbed()
.setDescription('this is the old description')
message.channel.send(editEmbed).then((m) =>
m.edit(editEmbed.setDescription('this is the new description')))
让我知道这是否有效