Задать вопрос
morfiscam
@morfiscam
Developer bot in Discord and design

Как исправить ошибку взаимодействия?

client.on("interactionCreate", async (interaction) => {
    if (interaction.customId === "row_0_button_0") {
        const modal = new ModalBuilder()
            .setCustomId('myModal')
            .setTitle('Управление пользователем');
            const idmember = new TextInputBuilder()
            .setCustomId('idmember')
            .setLabel("Введите ID Участника. Для этого требуется режим разработчика.")
            .setStyle(TextInputStyle.Short);
            const ff = new ActionRowBuilder().addComponents(idmember);
            modal.addComponents(ff);
        await interaction.showModal(modal);
     }
     if (!interaction.isModalSubmit()) return;
     const id = interaction.fields.getTextInputValue('idmember');
    if (interaction.customId === 'myModal') {
        let member = interaction.guild.members.cache.get(id);
        if (!member) {
            return interaction.reply({ content: `Ошибка не найден пользователь!`, ephemeral: true });
        }
        member.roles.add("1073230066772881468").then(() => {
            interaction.reply({ content: `Пользлователь получил блокировку.`, ephemeral: true })
        }).catch(() => {
            interaction.reply({ content: `Ошибка выдачи!`, ephemeral: true })
        })
}
});

client.on("interactionCreate", async (interaction) => {
    if (!interaction.isModalSubmit()) return;
     const id = interaction.fields.getTextInputValue('idmember');
    if (interaction.customId === 'myModal') {
        let member = interaction.guild.members.cache.get(id);
        if (!member) {
            return interaction.reply({ content: `Ошибка не найден пользователь!`, ephemeral: true });
        }
        member.roles.add("1073230066772881468").then(() => {
            interaction.reply({ content: `Выдал роль!`, ephemeral: true })
        }).catch(() => {
            interaction.reply({ content: `Ошибка выдачи!`, ephemeral: true })
        })
}
});

63e68585198dc558101887.png
  • Вопрос задан
  • 1111 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
megaf1re
@megaf1re
Я так понял, у тебя выполняется код при нажатии на кнопку, но отображается эта ошибка.
Просто она требует ответа.

Кнопка обрабатывается ивентом InteractionCreate у каждого взаимодействия есть свойство, в случае кнопки - interaction.isButton(). Чтобы обработать конкретную кнопку, нужно проверить её айди, который ты указываешь при создании кнопки
if(interaction.isButton()) {
        if(interaction.customId == 'idmember') {
                await interaction.reply('reply');
        }
}


Если тебе не нужно засорять чат от ответа взаимодействия кнопки, то просто используй await interaction.deferUpdate(). Или ты можешь вывести туда полезную инфу, например, как в твоем случае "Пользователь member забанен"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы