如何使用bot Discord.js编辑嵌入?

如何使用bot Discord.js编辑嵌入?,discord.js,Discord.js,如何使用我的机器人编辑已发送的嵌入?首先,我构建了一个嵌入式: 常量倒计时嵌入={ 颜色:0x0099ff, 标题:(“倒计时”), 作者:{ 名称:`${user\u name}`, 图标\u url:`${user\u pfp}`, }, 描述:“您的倒计时在**3秒**后开始”, 缩略图:{ url:“${client\u pfp}”, }, 时间戳:新日期(), 页脚:{ 文本:`${client_name}`, 图标\u url:`${client\u pfp}`, }, }; 然后

如何使用我的机器人编辑已发送的嵌入?首先,我构建了一个嵌入式:

常量倒计时嵌入={
颜色:0x0099ff,
标题:(“倒计时”),
作者:{
名称:`${user\u name}`,
图标\u url:`${user\u pfp}`,
},
描述:“您的倒计时在**3秒**后开始”,
缩略图:{
url:“${client\u pfp}”,
},
时间戳:新日期(),
页脚:{
文本:`${client_name}`,
图标\u url:`${client\u pfp}`,
},
};
然后我做了一个新的嵌入:

const countdownEmbed2={
标题:(“新标题!”),
描述:'您的倒计时在**2秒**后开始,
};
创建“更新”嵌入后,我尝试发送消息,然后在一秒钟后对其进行编辑:

message.channel.send({embed:countdownEmbed})
。然后((msg)=>{
setTimeout(函数(){
msg.edit(倒计时2);
}, 1000)
});

我的代码只发送初始嵌入,不进行编辑。但是,如果我将
msg.edit(countdownEmbed2)
中的
CountEmbed2
更改为字符串,它将在不一致的情况下编辑消息本身,但不会编辑嵌入。有办法解决这个问题吗?还是有更简单的方法来编辑嵌入?

我不确定为什么,但在我的测试后,我得出结论,您的问题是由您编写嵌入的方式引起的

如果您使用构造函数(如果您使用的是discord.jsv11),那么它会工作的

这在测试时起到了作用:

const countdownEmbed=new MessageEmbed()
.setDescription('test1')
const countdownEmbed2=新消息嵌入()
.setDescription('test2')
.setColor(“红色”)
message.channel.send({embed:countdownEmbed})。然后((msg)=>{
setTimeout(函数(){
msg.edit(倒计时2);
}, 1000)
})

下面是一个编辑示例

const editEmbed=new Discord.MessageEmbed()
.setDescription('这是旧的描述')
message.channel.send(editEmbed).then((m)=>
m、 编辑(editEmbed.setDescription('这是新的描述'))

让我知道这是否有效

这不是代码的直接问题。问题是
Channel.send()
可以将字符串或MessageEmbed(/RichEmbed)对象作为第一个参数,因为库会在内部将传递的嵌入选项移动到对象中。OP正在将嵌入创建为原始对象,而这些对象不能以这种方式传递,它们必须作为
send({embed:yourEmbedObject})
传递。