discord.js 如何编辑/更新嵌入?

Posted

技术标签:

【中文标题】discord.js 如何编辑/更新嵌入?【英文标题】:discord.js how to edit/update embed? 【发布时间】:2020-11-02 22:49:56 【问题描述】:

我正在开发一个“小型”机器人以获取乐趣,目前正在尝试创建一个二十一点命令。前半部分工作正常,但是当我想更新机器人已经发布的嵌入时会出现问题。我不断收到错误消息: UnhandledPromiseRejectionWarning: DiscordAPIError: Cannot edit a message authored by another user 以下是部分代码:

        const embd = new Discord.MessageEmbed()
            .addFields(
                 name: 'Dealer cards: ' + botCards + ' + ?',
                 name: 'Your cards: ' + userCards,
            )

            message.channel.send(embd).then(embdReact => 
                embdReact.react('????');
                embdReact.react('????');

                const filter = (reaction, user) => 
                    return ['????','????'].includes(reaction.emoji.name) && user.id === message.author.id;
                ;
            
                embdReact.awaitReactions(filter,  max: 1, time: 60000)
                    .then(collected => 
                        const reaction = collected.first();
            
                        if (reaction.emoji.name === '????')
                            const newEmbd = new Discord.MessageEmbed()
                                .setTitle("Wow");
                            message.edit(newEmbd);
                        
                        else 
                            message.reply('boo');
                        
                        )
            ) 

为了测试,我尝试只更改标题,但在理想情况下,相应的字段会被更新。 例如:“您的卡片:”字段。

【问题讨论】:

【参考方案1】:

您正在编辑错误的消息:

行:

message.edit(newEmbd);

应该是:

embdReact.edit(newEmbd);

希望这将帮助您解决问题!

【讨论】:

以上是关于discord.js 如何编辑/更新嵌入?的主要内容,如果未能解决你的问题,请参考以下文章

嵌入中的 Discord.js 秒精度更新计时器

Discord.js V13:如何编辑交互的消息对象?

Discord js - 如何在给定的时间段内继续对消息做出反应并编辑嵌入

自动更新嵌入 (discord.js)

使用 Discord 按钮的建议命令 Discord.JS

Discord.js 使用来自其他消息的附件来更新嵌入中的图像