首页 > 解决方案 > discord.js 如何编辑/更新嵌入?

问题描述

我正在开发一个“小型”机器人以获取乐趣,目前正在尝试创建一个二十一点命令。前半部分工作正常,但是当我想更新机器人已经发布的嵌入时会出现问题。我不断收到错误消息: 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');
                        }
                        })
            }) 

为了进行测试,我尝试仅更改标题,但在完美的世界中,相应的字段将被更新。例如: “你的卡片:”字段。

标签: javascriptdiscorddiscord.js

解决方案


您正在编辑错误消息:

该行:

message.edit(newEmbd);

应该 :

embdReact.edit(newEmbd);

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


推荐阅读