From 06b81f5d7412530b439a142d3eecc3c6244318c7 Mon Sep 17 00:00:00 2001 From: Bxio Date: Thu, 1 May 2025 21:24:41 +0100 Subject: [PATCH] --- src/commands/Community/meta.js | 62 +++++++++++++++++++++------------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/src/commands/Community/meta.js b/src/commands/Community/meta.js index b0997ac..4207e63 100644 --- a/src/commands/Community/meta.js +++ b/src/commands/Community/meta.js @@ -1,29 +1,48 @@ -const { SlashCommandBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder, EmbedBuilder } = require('discord.js'); +// comandos/add.js +const { InteractionContextType, EmbedBuilder, SlashCommandBuilder } = require('discord.js'); const conn = require('../../../database/db'); // Ajusta o caminho +console.error("--------------------- lista_membro.js ---------------------"); + module.exports = { data: new SlashCommandBuilder() - .setName('metas') - .setDescription('Mostra metas dos usuários'), + .setName('membros') + .setDescription('Exibe as informações do membro que enviou o comando.'), + async execute(interaction) { - 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 ORDER BY c.id DESC`); + await interaction.deferReply({ ephemeral: true }); - const embed = new EmbedBuilder().setColor("#00b0f4"); + 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 + ); - rows.forEach(row => { + if (!rows.length) { + return await interaction.editReply('Nenhum membro encontrado.'); + } + + 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 = {}; + try { - metas = JSON.parse(row.meta); - } catch { - console.warn('Meta mal formatada:', row.discord_username); + if (row.meta) { + metas = JSON.parse(row.meta); + } + } catch (err) { + console.warn('JSON mal formatado para usuário:', row.discord_username); } let metasText = ''; - for (const [key, data] of Object.entries(metas)) { - if (typeof data === 'object' && 'alvo' in data && 'atual' in data) { - metasText += `* *${key}:* \`${data.atual} / ${data.alvo}\`\n`; + for (const [nomejson, dados] of Object.entries(metas)) { + if (typeof dados === 'object' && dados !== null && 'alvo' in dados && 'atual' in dados) { + metasText += `* *${nomejson}:* \`${dados.atual} / ${dados.alvo}\`\n`; } else { - metasText += `* *${key}:* \`formato inválido\`\n`; + metasText += `* *${nomejson}:* \`formato inválido\`\n`; } } @@ -32,15 +51,12 @@ module.exports = { value: `\n\n> **${row.nig}** \n > <@${row.discord_id}>\n **Cargo:** \`${row.nomedocargo}\` \n**Meta Semanal:** \n${metasText}\n\n`, inline: true }); - }); - const botao = new ButtonBuilder() - .setCustomId('editar_metas') - .setLabel('Editar Minhas Metas') - .setStyle(ButtonStyle.Primary); + await interaction.editReply({ embeds: [embed] }); - const row = new ActionRowBuilder().addComponents(botao); - - await interaction.reply({ embeds: [embed], components: [row], ephemeral: true }); - } -}; + } 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