This commit is contained in:
parent
17f236836b
commit
282524f425
@ -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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user