diff --git a/src/commands/Community/meta.js b/src/commands/Community/meta.js index 26b0577..c44c044 100644 --- a/src/commands/Community/meta.js +++ b/src/commands/Community/meta.js @@ -1,5 +1,5 @@ // comandos/add.js -const { InteractionContextType, EmbedBuilder, SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, TextInputBuilder, TextInputStyle, ModalBuilder } = require('discord.js'); +const { EmbedBuilder, SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ModalBuilder, TextInputBuilder, TextInputStyle } = require('discord.js'); const conn = require('../../../database/db'); // Ajusta o caminho console.error("--------------------- lista_membro.js ---------------------"); @@ -68,6 +68,7 @@ module.exports = { } }, + // Lida com a interação do botão async handleButtonClick(interaction) { if (interaction.customId === 'edit_meta') { const modal = new ModalBuilder() @@ -90,31 +91,56 @@ module.exports = { } }, + // Lida com a submissão do modal async handleModalSubmit(interaction) { const newAtual = interaction.fields.getTextInputValue('new_atual'); - // Aqui você precisa atualizar os dados no banco de dados - const [rows] = await conn.execute( - 'SELECT u.id, u.meta FROM users u WHERE u.discord_id = ?', - [interaction.user.id] - ); + try { + // Consulta os dados do usuário no banco de dados + const [rows] = await conn.execute( + 'SELECT u.id, u.meta FROM users u WHERE u.discord_id = ?', + [interaction.user.id] + ); - if (!rows.length) { - return await interaction.reply({ content: 'Usuário não encontrado', ephemeral: true }); + if (!rows.length) { + return await interaction.reply({ content: 'Usuário não encontrado', ephemeral: true }); + } + + let metas = JSON.parse(rows[0].meta); + + // Atualiza o valor de 'atual' no JSON + // Supondo que você sabe qual meta está sendo editada (ex: 'carvao') + metas['carvao'].atual = newAtual; // Altere o nome da chave conforme necessário + + // Atualiza no banco de dados + await conn.execute( + 'UPDATE users SET meta = ? WHERE discord_id = ?', + [JSON.stringify(metas), interaction.user.id] + ); + + await interaction.reply({ content: 'Meta atualizada com sucesso!', ephemeral: true }); + } catch (error) { + console.error('Erro ao atualizar a meta no banco de dados:', error); + await interaction.reply({ content: 'Erro ao atualizar a meta!', ephemeral: true }); } - - let metas = JSON.parse(rows[0].meta); - - // Atualiza o valor de 'atual' no JSON - // Supondo que você sabe qual meta está sendo editada (ex: 'carvao') - metas['carvao'].atual = newAtual; // Altere o nome da chave conforme necessário - - // Atualiza no banco de dados - await conn.execute( - 'UPDATE users SET meta = ? WHERE discord_id = ?', - [JSON.stringify(metas), interaction.user.id] - ); - - await interaction.reply({ content: 'Meta atualizada com sucesso!', ephemeral: true }); } }; + +// Adiciona o evento que lida com a criação de interações +client.on('interactionCreate', async (interaction) => { + if (!interaction.isButton() && !interaction.isModalSubmit()) return; + + // Verifica se a interação é de um botão + if (interaction.isButton()) { + if (interaction.customId === 'edit_meta') { + await module.exports.handleButtonClick(interaction); + } + } + + // Verifica se a interação é de um modal + if (interaction.isModalSubmit()) { + if (interaction.customId === 'meta_modal') { + await module.exports.handleModalSubmit(interaction); + } + } +});