Discord. js как редактировать / обновлять эмбед? - PullRequest
5 голосов
/ 13 июля 2020

Я работаю над «маленьким» ботом для развлечения и сейчас пытаюсь создать команду для блэкджека. Первая половина работает нормально, но проблема возникает, когда я хочу обновить вложение, которое уже было опубликовано ботом. Я все время получаю сообщение об ошибке: 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 Ответ

2 голосов
/ 13 июля 2020

Вы редактируете неправильное сообщение:

Строка:

message.edit(newEmbd);

должна быть:

embdReact.edit(newEmbd);

Надеюсь, это поможет вам решить вашу проблему. !

...