【问题标题】:Editing Embed DiscordAPIError: Cannot edit a message authored by another user编辑嵌入 DiscordAPIError:无法编辑由其他用户创作的消息
【发布时间】:2021-07-14 04:32:51
【问题描述】:

研究/我尝试过的事情:

我知道已经有关于此问题的预先存在的问题,并且我尝试实施 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

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    也许像:

       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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-17
      • 2021-08-31
      • 2020-09-08
      相关资源
      最近更新 更多