diff --git a/src/commands/Community/testeadd.js b/src/commands/Community/testeadd.js index eedc5fd..9b790ad 100644 --- a/src/commands/Community/testeadd.js +++ b/src/commands/Community/testeadd.js @@ -4,96 +4,80 @@ const conn = require('../../../database/db'); console.error("--------------------- testeadd.js ---------------------"); -// Função para carregar as escolhas do banco de dados -async function loadChoices() { - try { - // Supondo que sua tabela se chame "choices" e possua as 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 - })), - - console.error("Erro ao carregar escolhas:", rows); - } catch (err) { - console.error("Erro ao carregar escolhas:", err); - return []; - } -} - module.exports = { - data: new SlashCommandBuilder() - .setName('add') - .setDescription('Adiciona o servidor à base de dados.') - // Opção "nome" com autocomplete - .addStringOption(option => - option.setName('nome') - .setDescription('Escolhe uma opção') - .setRequired(true) - .setAutocomplete(true) - ) - // Opção "tipo_sanguinio1" com autocomplete - .addStringOption(option => - option.setName('tipo_sanguinio1') - .setDescription('Escolha uma opção do banco de dados') - .setRequired(true) - .setAutocomplete(true) - ), + 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' } + ) + ), + + 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); + + 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.'); + } + + + 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 + } - async execute(interaction, client) { - // Trata a interação de autocomplete - if (interaction.isAutocomplete()) { - const focusedOption = interaction.options.getFocused(true); - try { - const choices = await loadChoices(); - // Filtra as escolhas com base no que o usuário digitou - const filtered = choices.filter(choice => - choice.name.toLowerCase().startsWith(focusedOption.value.toLowerCase()) - ); - return interaction.respond(filtered); - } catch (err) { - console.error("Erro no autocomplete:", err); - return interaction.respond([]); - } } - - // Execução normal do comando - 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}`); - - // Responde imediatamente para evitar timeout - await interaction.deferReply(); - - try { - // Consulta para verificar a existência do guildId - 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 { - // Verifica se o guildId já está registrado - 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 { - // Insere o novo guildId na tabela - 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); - } - } };