diff --git a/src/commands/Community/meta.js b/src/commands/Community/meta.js index 7a3cf4e..26b0577 100644 --- a/src/commands/Community/meta.js +++ b/src/commands/Community/meta.js @@ -1,5 +1,5 @@ // comandos/add.js -const { InteractionContextType, EmbedBuilder, SlashCommandBuilder } = require('discord.js'); +const { InteractionContextType, EmbedBuilder, SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, TextInputBuilder, TextInputStyle, ModalBuilder } = require('discord.js'); const conn = require('../../../database/db'); // Ajusta o caminho console.error("--------------------- lista_membro.js ---------------------"); @@ -52,11 +52,69 @@ module.exports = { inline: true }); - await interaction.editReply({ embeds: [embed] }); + // Adiciona um botão para permitir a edição do valor + const button = new ActionRowBuilder().addComponents( + new ButtonBuilder() + .setCustomId('edit_meta') + .setLabel('Editar Meta') + .setStyle(ButtonStyle.Primary) + ); + + await interaction.editReply({ embeds: [embed], components: [button] }); } catch (error) { console.error('Erro ao acessar o banco de dados:', error); await interaction.editReply({ content: 'Erro ao carregar os dados do membro!' }); } }, -}; \ No newline at end of file + + async handleButtonClick(interaction) { + if (interaction.customId === 'edit_meta') { + const modal = new ModalBuilder() + .setCustomId('meta_modal') + .setTitle('Editar Meta'); + + // Adiciona um campo de entrada de texto para o novo valor de `atual` + modal.addComponents( + new ActionRowBuilder().addComponents( + new TextInputBuilder() + .setCustomId('new_atual') + .setLabel('Novo valor de Atual') + .setStyle(TextInputStyle.Short) + .setPlaceholder('Insira o novo valor...') + .setRequired(true) + ) + ); + + await interaction.showModal(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] + ); + + 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 }); + } +};