This commit is contained in:
Bxio 2025-05-01 21:29:36 +01:00
parent 3959d7e5a1
commit 75d5045a5b

View File

@ -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);
}
}
});