编辑嵌入 DiscordAPIError:无法编辑由其他用户创作的消息

时间:2021-04-20 01:03:15

标签: javascript discord discord.js

我尝试过的研究/事情:

我知道已经有关于此问题的预先存在的问题,并且我已尝试实施 what this answer suggested 但无济于事。它甚至没有在这个问题中发布的代码中使用。

正如第二个“资源”所建议的,即使我要编辑嵌入对象本身,它也会给我错误 TypeError: Cannot read property 'edit' of undefined,如 a similar SO question 所述。稍微翻阅文档后,我意识到 MessageEmbed 对象本身没有 edit 方法,这让我非常困惑(来源:Discord.js Documentation)。


代码:

client.on('message', message => {
    //could be triggered via a different method, but it's only meant to test the !edit command
    const StandardEmbed = new Discord.MessageEmbed()
        .setTitle('Test')
        .setDescription('Description')
    message.channel.send(StandardEmbed);

    if (message.content === '!edit') {

        //oldEmbed is rather extraneous, I don't even call it at all...
        //let oldEmbed = message.channel.messages.fetch('833863581073932329'); 

        const embed = new Discord.MessageEmbed()
            .setTitle("New Embed!")
            .setDescription("Description")
            .addField('name', 'value');

        message.edit(embed);
    }
});

注意:

  • 使用 Client#message 侦听器
  • 使用 MessageEmbed 构造函数而不是嵌入对象

可能重要,也可能不重要。


TL;DR

我正在尝试在用户发送消息后编辑嵌入,例如。 "!edit" 但我收到了一个错误(在标题中提到)。


类似问题/资源:

  1. SO Answer
  2. Another similar SO Question
  3. Discord.js Documentation - MessageEmbed

1 个答案:

答案 0 :(得分:2)

也许像:

   message.channel.messages.fetch('833863581073932329').then(msg =>{
     const embed = new Discord.MessageEmbed()
            .setTitle("New Embed!")
            .setDescription("Description")
            .addField('name', 'value');
msg.edit(embed)
})

您正在尝试编辑 let oldEmbed 但您做了 message.edit 这意味着您正在尝试编辑 !edit