This commit is contained in:
Bxio 2025-04-04 20:44:08 +01:00
parent 59db1d5bfb
commit 3f5a852c99

View File

@ -4,7 +4,32 @@ const conn = require('../../../database/db');
console.error("--------------------- testeadd.js ---------------------"); 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 = { module.exports = {
// Definição do comando com as escolhas carregadas
data: new SlashCommandBuilder() data: new SlashCommandBuilder()
.setName('add') .setName('add')
.setDescription('Adiciona o servidor à base de dados.') .setDescription('Adiciona o servidor à base de dados.')
@ -12,23 +37,20 @@ module.exports = {
option.setName('nome') option.setName('nome')
.setDescription('Arisu - Escolhe uma opção') .setDescription('Arisu - Escolhe uma opção')
.setRequired(true) .setRequired(true)
.addChoices( // Se as escolhas ainda não estiverem carregadas, você pode definir valores padrão ou tratar essa situação
{ name: 'Bxio', value: '0' }, .addChoices(...(dynamicChoices.length ? dynamicChoices : [
{ name: 'TeixLo', value: '0' }, { name: 'Opção Padrão 1', value: '0' },
{ name: 'Mike', value: '1' }, { name: 'Opção Padrão 2', value: '1' }
{ name: 'Totem', value: '3' } ]))
)
) )
.addStringOption(option => .addStringOption(option =>
option.setName('tipo_sanguinio1') option.setName('tipo_sanguinio1')
.setDescription('Escolha uma opção do banco de dados') .setDescription('Escolha uma opção do banco de dados')
.setRequired(true) .setRequired(true)
.addChoices( .addChoices(...(dynamicChoices.length ? dynamicChoices : [
{ name: 'Bxio', value: '0' }, { name: 'Opção Padrão 1', value: '0' },
{ name: 'TeixLo', value: '0' }, { name: 'Opção Padrão 2', value: '1' }
{ name: 'Mike', value: '1' }, ]))
{ name: 'Totem', value: '3' }
)
), ),
async execute(interaction, client) { async execute(interaction, client) {
@ -36,48 +58,35 @@ module.exports = {
const guildName = interaction.guild.name; const guildName = interaction.guild.name;
const guildownerId = interaction.guild.ownerId; const guildownerId = interaction.guild.ownerId;
console.log(`guildId: ${guildId}`); console.log(`guildId: ${guildId}`);
console.log(`guildName: ${guildName}`); console.log(`guildName: ${guildName}`);
console.log(`guildownerId: ${guildownerId}`); console.log(`guildownerId: ${guildownerId}`);
//console.log(choices);
// Responde imediatamente para evitar timeout // Responde imediatamente para evitar timeout
await interaction.deferReply(); // público por padrão await interaction.deferReply();
try { try {
// Be very careful with this approach! This is vulnerable to SQL injection. const query = `SELECT * FROM Guilds WHERE guildId = ?`;
const query = `SELECT * FROM Guilds WHERE guildId = '${guildId}'`; const [rows] = await conn.execute(query, [guildId]);
const [rowsS, fields] = await conn.execute(query); console.log('✅ Acessou a base de dados:', rows);
console.log('✅ Primeira tentativa de acessar à base de dados.');
console.log("resultado db:", rowsS); // Log the result
} catch (err) { } catch (err) {
interaction.reply('❌ Ocorreu um erro inesperado.'); interaction.reply('❌ Ocorreu um erro inesperado.');
return;
} }
try { try {
// Verificar se o guildId já existe na base de dados const checkQuery = `SELECT * FROM Guilds WHERE guildId = ?`;
const checkQuery = `SELECT * FROM Guilds WHERE guildId = '${guildId}'`; const [checkRows] = await conn.execute(checkQuery, [guildId]);
const [checkRows] = await conn.execute(checkQuery);
//console.log(checkRows); // Log the result
if (checkRows.length > 0) { 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.'); interaction.editReply('❌ Este guildId já está registrado.');
//console.log(checkRows.length); // Log the result
} else { } else {
// O guildId não existe, podemos prosseguir com a inserção ou outra ação const insertQuery = `INSERT INTO Guilds (guildId, guildownerId) VALUES (?, ?)`;
const insertQuery = `INSERT INTO Guilds (guildId,guildownerId) VALUES ('${guildId}','${guildownerId}')`; await conn.execute(insertQuery, [guildId, guildownerId]);
await conn.execute(insertQuery);
interaction.editReply('✅ GuildId registrado com sucesso!'); interaction.editReply('✅ GuildId registrado com sucesso!');
} }
} catch (err) { } catch (err) {
interaction.editReply('❌ Ocorreu um erro inesperado.'); interaction.editReply('❌ Ocorreu um erro inesperado.');
console.error(err); // Logar o erro para ajudar no diagnóstico console.error(err);
} }
} }
}; };