This commit is contained in:
Bxio 2025-04-29 02:58:18 +01:00
parent e82b8b05d2
commit fde47d8b77

View File

@ -26,52 +26,57 @@ module.exports = {
const AsciiTable = require('ascii-table');
const table = new AsciiTable()
.setHeading('discord_id', 'discord_username', 'cargo');
try { try {
// Realizando a consulta ao banco de dados const [rows] = await conn.execute('SELECT discord_id, discord_username, cargo FROM users');
const [rows] = await conn.execute('SELECT discord_id, discord_username, cargo FROM users'); // Altere para a sua consulta
if (rows.length === 0) {
await interaction.editReply('Nenhum membro encontrado.');
return;
}
// Primeiro, calcula o tamanho máximo de cada coluna
let maxDiscordIdLength = 'Discord ID'.length;
let maxUsernameLength = 'Username'.length;
let maxCargoLength = 'Cargo'.length;
// Adicionando as linhas de dados à tabela
rows.forEach(row => { rows.forEach(row => {
table.addRow(row.discord_id, `<@${row.discord_username}>`, row.cargo); maxDiscordIdLength = Math.max(maxDiscordIdLength, String(row.discord_id).length);
maxUsernameLength = Math.max(maxUsernameLength, row.discord_username.length);
maxCargoLength = Math.max(maxCargoLength, row.cargo.length);
}); });
let tabelaString = table.toString(); // Cria cabeçalho
const header =
padRight('Discord ID', maxDiscordIdLength) + ' | ' +
padRight('Username', maxUsernameLength) + ' | ' +
padRight('Cargo', maxCargoLength);
// Filtrando: remover linhas que começam com '+' ou '\' const separator =
let linhas = tabelaString.split('\n').filter(linha => { '-'.repeat(maxDiscordIdLength) + '-|-' +
return !linha.startsWith('+') && !linha.startsWith('\'') && !linha.startsWith('.'); '-'.repeat(maxUsernameLength) + '-|-' +
}); '-'.repeat(maxCargoLength);
let tabelaSemBorda = linhas.join('\n'); // Monta as linhas
const linhas = rows.map(row =>
padRight(String(row.discord_id), maxDiscordIdLength) + ' | ' +
padRight(row.discord_username, maxUsernameLength) + ' | ' +
padRight(row.cargo, maxCargoLength)
);
// Criando o embed para mostrar a tabela const tabelaFinal = [header, separator, ...linhas].join('\n');
// const embed = new EmbedBuilder()
// .setTitle('📋 Informações dos Membros')
// .setColor('Green')
// .setDescription(`
// \`\`\`
// ${tabelaSemBorda}
// \`\`\`
// `)
// .setFooter({ text: 'Adicionado à base de dados ✅' });
// await interaction.editReply({ embeds: [embed] });
await interaction.editReply(`\`\`\`${tabelaSemBorda}\`\`\``);
await interaction.editReply(`\`\`\`fix\n${tabelaFinal}\n\`\`\``);
} 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 dos membros!' }); await interaction.editReply({ content: 'Erro ao carregar os dados dos membros!' });
} }
// Função para preencher à direita
function padRight(text, length) {
return text + ' '.repeat(length - text.length);
}