LorDipO
@LorDipO
Shto

Почему бот думает что уже ответил?

У меня вечная проблема с слеш командами. interaction.reply не работает потому-что думает, что уже ответил на сообщение и удалить этот ответ у меня не получилось. Работает только interaction.followUp

Пример кода:
const { Client, CommandInteraction, MessageActionRow, MessageButton } = require('discord.js');

module.exports = {
    name: 'respect',
    description: "Оценка пользователя",
    options: [
        {
            name: "user",
            description: "Кого хотите оценить?",
            type: 6,
            required: true
        },
    ],
    /**
     * @param {Client} client
     * @param {CommandInteraction} interaction
     * @param {String[]} args
     */
    run: async(client, interaction, args) =>{
        const author = interaction.options.getUser('user')

       
        const row = new MessageActionRow()
        .addComponents(
            new MessageButton()
                .setCustomId('+rep')
                .setEmoji('')
                .setLabel('Положительно')
                .setStyle('SUCCESS')
        )
        .addComponents(
            new MessageButton()
                .setCustomId('-rep')
                .setEmoji('')
                .setLabel('Отрицательно')
                .setStyle('DANGER')
        )
        

        const embed = {
            description: `**Как вы относитесь к ${author.username}?**`,
            /*thumbnail: {
                url: rValue
                },*/
                timestamp: Date.now(),
                footer: {
                    icon_url: author.displayAvatarURL() ?? "https://cdn.discordapp.com/embed/avatars/0.png",
                    text: `Запрошено ${author.username}`,
                },
                color: 7419530
        }
        //client.add(author.id, parseInt(suma));
        interaction.followUp({ embeds: [embed], components: [row]})
    }
}


Когда я пытаюсь сделать с interaction.reply
ошибка: if (this.deferred || this.replied) throw new Error('INTERACTION_ALREADY_REPLIED');

^

Error [INTERACTION_ALREADY_REPLIED]: The reply to this interaction has already been sent or deferred.
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
Syjalo
@Syjalo
Представьте себе бота
Возможно был ответ await interaction.deferReply() в обработчике команд. Других вариантов не вижу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы