This commit is contained in:
parent
f9264892e0
commit
06b81f5d74
@ -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
|
const conn = require('../../../database/db'); // Ajusta o caminho
|
||||||
|
|
||||||
|
console.error("--------------------- lista_membro.js ---------------------");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('metas')
|
.setName('membros')
|
||||||
.setDescription('Mostra metas dos usuários'),
|
.setDescription('Exibe as informações do membro que enviou o comando.'),
|
||||||
|
|
||||||
async execute(interaction) {
|
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 = {};
|
let metas = {};
|
||||||
|
|
||||||
try {
|
try {
|
||||||
metas = JSON.parse(row.meta);
|
if (row.meta) {
|
||||||
} catch {
|
metas = JSON.parse(row.meta);
|
||||||
console.warn('Meta mal formatada:', row.discord_username);
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.warn('JSON mal formatado para usuário:', row.discord_username);
|
||||||
}
|
}
|
||||||
|
|
||||||
let metasText = '';
|
let metasText = '';
|
||||||
for (const [key, data] of Object.entries(metas)) {
|
for (const [nomejson, dados] of Object.entries(metas)) {
|
||||||
if (typeof data === 'object' && 'alvo' in data && 'atual' in data) {
|
if (typeof dados === 'object' && dados !== null && 'alvo' in dados && 'atual' in dados) {
|
||||||
metasText += `* *${key}:* \`${data.atual} / ${data.alvo}\`\n`;
|
metasText += `* *${nomejson}:* \`${dados.atual} / ${dados.alvo}\`\n`;
|
||||||
} else {
|
} 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`,
|
value: `\n\n> **${row.nig}** \n > <@${row.discord_id}>\n **Cargo:** \`${row.nomedocargo}\` \n**Meta Semanal:** \n${metasText}\n\n`,
|
||||||
inline: true
|
inline: true
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
|
||||||
const botao = new ButtonBuilder()
|
await interaction.editReply({ embeds: [embed] });
|
||||||
.setCustomId('editar_metas')
|
|
||||||
.setLabel('Editar Minhas Metas')
|
|
||||||
.setStyle(ButtonStyle.Primary);
|
|
||||||
|
|
||||||
const row = new ActionRowBuilder().addComponents(botao);
|
} catch (error) {
|
||||||
|
console.error('Erro ao acessar o banco de dados:', error);
|
||||||
await interaction.reply({ embeds: [embed], components: [row], ephemeral: true });
|
await interaction.editReply({ content: 'Erro ao carregar os dados do membro!' });
|
||||||
}
|
}
|
||||||
};
|
},
|
||||||
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user