const { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, MessageFlags } = require('discord.js'); const conn = require('../../../database/db'); console.error("--------------------- testeadd.js ---------------------"); // Define a função loadChoices antes de usá-la async function loadChoices() { try { // Supondo que sua tabela de escolhas se chame "choices" e tenha 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() // converter 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) // Se as escolhas ainda não estiverem carregadas, defina um conjunto padrão para evitar erros. .addChoices({ name: 'agua', value: '2' }, { name: 'pao', 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) { // Lógica 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 { 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); } } };