This commit is contained in:
Bxio 2025-05-01 21:32:37 +01:00
parent 75d5045a5b
commit 42c67150aa

View File

@ -1,9 +1,7 @@
// comandos/add.js
const { EmbedBuilder, SlashCommandBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle, ModalBuilder, TextInputBuilder, TextInputStyle } = require('discord.js');
// comandos/Community/meta.js
const { ModalBuilder, TextInputBuilder, TextInputStyle, ActionRowBuilder, ButtonBuilder, ButtonStyle, EmbedBuilder, SlashCommandBuilder } = require('discord.js');
const conn = require('../../../database/db'); // Ajusta o caminho
console.error("--------------------- lista_membro.js ---------------------");
module.exports = {
data: new SlashCommandBuilder()
.setName('meta')
@ -13,10 +11,9 @@ module.exports = {
await interaction.deferReply({ ephemeral: true });
try {
// Consulta os dados do usuário que executou o comando (usando interaction.user.id)
const [rows] = await conn.execute(
'SELECT u.id, u.discord_id, u.discord_username, u.nig, u.meta, c.name AS nomedocargo FROM users u JOIN choices c ON u.cargo = c.value WHERE u.discord_id = ? ORDER BY c.id DESC',
[interaction.user.id] // Passa o ID do usuário que executou o comando
[interaction.user.id]
);
if (!rows.length) {
@ -24,8 +21,6 @@ module.exports = {
}
const embed = new EmbedBuilder().setColor("#00b0f4");
// Pega as metas do usuário
const row = rows[0]; // Já que é apenas um usuário, podemos pegar o primeiro da lista
let metas = {};
@ -52,7 +47,6 @@ module.exports = {
inline: true
});
// Adiciona um botão para permitir a edição do valor
const button = new ActionRowBuilder().addComponents(
new ButtonBuilder()
.setCustomId('edit_meta')
@ -68,14 +62,12 @@ module.exports = {
}
},
// Lida com a interação do botão
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()
@ -91,12 +83,10 @@ module.exports = {
}
},
// Lida com a submissão do modal
async handleModalSubmit(interaction) {
const newAtual = interaction.fields.getTextInputValue('new_atual');
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]
@ -108,11 +98,8 @@ module.exports = {
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
metas['carvao'].atual = newAtual;
// Atualiza no banco de dados
await conn.execute(
'UPDATE users SET meta = ? WHERE discord_id = ?',
[JSON.stringify(metas), interaction.user.id]
@ -125,22 +112,3 @@ module.exports = {
}
}
};
// 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);
}
}
});