Не могу разобраться в modal Discord.js

имеется вот такой код

const { Events, SlashCommandBuilder, EmbedBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, ActionRowBuilder, ModalBuilder, ModalSubmitInteraction, TextInputBuilder, TextInputStyle } = require('discord.js');
const sqlite3 = require('sqlite3').verbose();

module.exports = {
    data: new SlashCommandBuilder()
        .setName('transfer')
        .setDescription('Transfer money')
        .addUserOption(option => option.setName('пользователь').setDescription('Пользователь для перевода средств.').setRequired(true)),

    async execute(interaction) {
        
        const user = interaction.options.getUser('пользователь');
        const db = new sqlite3.Database('./database.sqlite3');
        function containLetters(amountToTransfer) {
            return /[a-zA-Zа-яА-Я]/.test(amountToTransfer);
        }
        const embedNotValue = {
            color: 0xFF0000,
            title: `Ошибка!`,
            description: `Введите пожалуйста число.`,
            thumbnail: { url: interaction.user.displayAvatarURL({ format: 'jpg' }).toString() },
        }
        const embedNotAmount = {
            color: 0xFF0000,
            title: `Ошибка!`,
            description: `У вас недостаточно средств для перевода.`,
            thumbnail: { url: interaction.user.displayAvatarURL({ format: 'jpg' }).toString() },
        }
        const embedAmountWZero = {
            color: 0xFF0000,
            title: `Ошибка!`,
            description: `Число не может быть ниже 0.`,
            thumbnail: { url: interaction.user.displayAvatarURL({ format: 'jpg' }).toString() },
        }
        const modalTransfer = new ModalBuilder()
                .setCustomId('modalTransfer')
                .setTitle('Сумма для перевода?')
        const amount = new TextInputBuilder()
                .setCustomId('amount')
                .setLabel("Сколько вы желаете перевести?")
                .setStyle(TextInputStyle.Short)
                .setPlaceholder("0")
        const amountRow = new ActionRowBuilder().addComponents(amount);
        modalTransfer.addComponents(amountRow);
        await interaction.showModal(modalTransfer);
        try {
            const modalResponse = await interaction.awaitModalSubmit({filter: (i) =>
                                                                        i.customId === 'modalTransfer' && i.user.id === interaction.user.is,
                                                                     time: 60000,});
            if(modalResponse.isModalSubmit()){
                const amountToTransfer = interaction.values.get('amount');
                if (containLetters(amountToTransfer)) {
                    await interaction.reply({ embeds: [embedNotValue], ephemeral: true });
                    return;
                } else if (amountToTransfer < 0) {
                    await interaction.reply({ embeds: [embedAmountWZero], ephemeral: true });
                    return;
                }
                db.get(`SELECT balance FROM users WHERE id = ?`, [interaction.user.id], (err, row) => {
                    if (err) {
                    console.error(err);
                    return;
                    
                    }
                    const balance = row ? row.balance : 0;
                    if (amountToTransfer > balance) {
                        interaction.reply({ embeds: [embedNotAmount], ephemeral: true });
                        return;
                    }
                    db.run(`UPDATE users SET balance = balance - ? WHERE id =?`, [amountToTransfer, interaction.user.id]);
                    db.run(`UPDATE users SET balance = balance +? WHERE id =?`, [amountToTransfer, user.id]);
                    const embedSuccess = {
                    color: 0x00FF00,
                    title: `Успешный перевод!`,
                    description:`${interaction.user.username} Вы успешно перевели ${user.username} сумму в размере: ${amountToTransfer}`,
                    thumbnail: { url: interaction.user.displayAvatarURL({ format: 'jpg' }).toString() },
                    }
                    return interaction.reply({ embeds: [embedSuccess] });
                    
            });}
        } catch (error){console.error(error)}
    }
}

По сути он должен принимать значение из modal но по итогу кода я на сервере даю ответ на modal он реагирует только так:
введите сюда описание изображения

По итогу я перепробовал исправить код путём добавления доп обработок модла, не помогло.


Ответы (0 шт):