diff --git a/src/commands/Community/testeadd.js b/src/commands/Community/testeadd.js index 9b790ad..1157412 100644 --- a/src/commands/Community/testeadd.js +++ b/src/commands/Community/testeadd.js @@ -4,80 +4,89 @@ const conn = require('../../../database/db'); console.error("--------------------- testeadd.js ---------------------"); +// Função para buscar as escolhas no banco de dados +async function loadChoices() { + try { + // Exemplo de query: supondo que você tenha uma tabela 'choices' com colunas 'name' e 'value' + const [rows] = await conn.execute('SELECT name, value FROM choices'); + return rows.map(row => ({ + name: row.name, + value: row.value.toString() // converte para string se necessário + })); + } catch (err) { + console.error("Erro ao carregar escolhas:", err); + return []; + } +} + +// Carrega as escolhas antes de definir o comando +let dynamicChoices = []; +loadChoices().then(choices => { + dynamicChoices = choices; + console.log("Escolhas carregadas:", dynamicChoices); +}).catch(err => { + console.error("Falha ao carregar escolhas:", err); +}); + module.exports = { - data: new SlashCommandBuilder() - .setName('add') - .setDescription('Adiciona o servidor à base de dados.') - .addStringOption(option => - option.setName('nome') - .setDescription('Arisu - Escolhe uma opção') - .setRequired(true) - .addChoices( - { name: 'Bxio', value: '0' }, - { name: 'TeixLo', value: '0' }, - { name: 'Mike', value: '1' }, - { name: 'Totem', value: '3' } - ) - ) - .addStringOption(option => - option.setName('tipo_sanguinio1') - .setDescription('Escolha uma opção do banco de dados') - .setRequired(true) - .addChoices( - { name: 'Bxio', value: '0' }, - { name: 'TeixLo', value: '0' }, - { name: 'Mike', value: '1' }, - { name: 'Totem', value: '3' } - ) - ), + // Definição do comando com as escolhas carregadas + data: new SlashCommandBuilder() + .setName('add') + .setDescription('Adiciona o servidor à base de dados.') + .addStringOption(option => + option.setName('nome') + .setDescription('Arisu - Escolhe uma opção') + .setRequired(true) + // Se as escolhas ainda não estiverem carregadas, você pode definir valores padrão ou tratar essa situação + .addChoices(...(dynamicChoices.length ? dynamicChoices : [ + { name: 'Opção Padrão 1', value: '0' }, + { name: 'Opção Padrão 2', value: '1' } + ])) + ) + .addStringOption(option => + option.setName('tipo_sanguinio1') + .setDescription('Escolha uma opção do banco de dados') + .setRequired(true) + .addChoices(...(dynamicChoices.length ? dynamicChoices : [ + { name: 'Opção Padrão 1', value: '0' }, + { name: 'Opção Padrão 2', value: '1' } + ])) + ), - async execute(interaction, client) { - const guildId = interaction.guild.id; - const guildName = interaction.guild.name; - const guildownerId = interaction.guild.ownerId; - - - console.log(`guildId: ${guildId}`); - console.log(`guildName: ${guildName}`); - console.log(`guildownerId: ${guildownerId}`); - //console.log(choices); - - // Responde imediatamente para evitar timeout - await interaction.deferReply(); // público por padrão - - try { - // Be very careful with this approach! This is vulnerable to SQL injection. - const query = `SELECT * FROM Guilds WHERE guildId = '${guildId}'`; - const [rowsS, fields] = await conn.execute(query); + async execute(interaction, client) { + const guildId = interaction.guild.id; + const guildName = interaction.guild.name; + const guildownerId = interaction.guild.ownerId; - console.log('✅ Primeira tentativa de acessar à base de dados.'); - console.log("resultado db:", rowsS); // Log the result - - } catch (err) { - interaction.reply('❌ Ocorreu um erro inesperado.'); - } + console.log(`guildId: ${guildId}`); + console.log(`guildName: ${guildName}`); + console.log(`guildownerId: ${guildownerId}`); + // Responde imediatamente para evitar timeout + await interaction.deferReply(); - try { - // Verificar se o guildId já existe na base de dados - const checkQuery = `SELECT * FROM Guilds WHERE guildId = '${guildId}'`; - const [checkRows] = await conn.execute(checkQuery); - //console.log(checkRows); // Log the result - if (checkRows.length > 0) { - // Já existe um guildId na tabela, você pode retornar uma resposta indicando a duplicação - interaction.editReply('❌ Este guildId já está registrado.'); - //console.log(checkRows.length); // Log the result - } else { - // O guildId não existe, podemos prosseguir com a inserção ou outra ação - const insertQuery = `INSERT INTO Guilds (guildId,guildownerId) VALUES ('${guildId}','${guildownerId}')`; - await conn.execute(insertQuery); - - interaction.editReply('✅ GuildId registrado com sucesso!'); - } - } catch (err) { - interaction.editReply('❌ Ocorreu um erro inesperado.'); - console.error(err); // Logar o erro para ajudar no diagnóstico - } - + try { + const query = `SELECT * FROM Guilds WHERE guildId = ?`; + const [rows] = await conn.execute(query, [guildId]); + console.log('✅ Acessou a base de dados:', rows); + } catch (err) { + interaction.reply('❌ Ocorreu um erro inesperado.'); + return; } + + try { + const checkQuery = `SELECT * FROM Guilds WHERE guildId = ?`; + const [checkRows] = await conn.execute(checkQuery, [guildId]); + if (checkRows.length > 0) { + interaction.editReply('❌ Este guildId já está registrado.'); + } else { + const insertQuery = `INSERT INTO Guilds (guildId, guildownerId) VALUES (?, ?)`; + await conn.execute(insertQuery, [guildId, guildownerId]); + interaction.editReply('✅ GuildId registrado com sucesso!'); + } + } catch (err) { + interaction.editReply('❌ Ocorreu um erro inesperado.'); + console.error(err); + } + } };