This commit is contained in:
Bxio 2025-05-01 21:27:10 +01:00
parent a6b378c156
commit 3959d7e5a1

View File

@ -1,5 +1,5 @@
// comandos/add.js // 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 const conn = require('../../../database/db'); // Ajusta o caminho
console.error("--------------------- lista_membro.js ---------------------"); console.error("--------------------- lista_membro.js ---------------------");
@ -52,11 +52,69 @@ module.exports = {
inline: true 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) { } catch (error) {
console.error('Erro ao acessar o banco de dados:', error); console.error('Erro ao acessar o banco de dados:', error);
await interaction.editReply({ content: 'Erro ao carregar os dados do membro!' }); await interaction.editReply({ content: 'Erro ao carregar os dados do membro!' });
} }
}, },
};
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 });
}
};