98 lines
3.2 KiB
JavaScript
98 lines
3.2 KiB
JavaScript
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(...loadChoices : [
|
|
{ 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) {
|
|
// 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);
|
|
}
|
|
}
|
|
};
|