This commit is contained in:
parent
ae89947759
commit
3da5eac057
@ -3,14 +3,14 @@ const conn = require('../../../database/db');
|
|||||||
|
|
||||||
console.error("--------------------- testeadd.js ---------------------");
|
console.error("--------------------- testeadd.js ---------------------");
|
||||||
|
|
||||||
// Define a função loadChoices antes de usá-la
|
// Função para carregar as escolhas do banco de dados
|
||||||
async function loadChoices() {
|
async function loadChoices() {
|
||||||
try {
|
try {
|
||||||
// Supondo que sua tabela de escolhas se chame "choices" e tenha colunas "name" e "value"
|
// Supondo que sua tabela de escolhas se chame "choices" e tenha as colunas "name" e "value"
|
||||||
const [rows] = await conn.execute('SELECT name, value FROM choices');
|
const [rows] = await conn.execute('SELECT name, value FROM choices');
|
||||||
return rows.map(row => ({
|
return rows.map(row => ({
|
||||||
name: row.name,
|
name: row.name,
|
||||||
value: row.value.toString() // converter para string se necessário
|
value: row.value.toString() // converte para string se necessário
|
||||||
}));
|
}));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Erro ao carregar escolhas:", err);
|
console.error("Erro ao carregar escolhas:", err);
|
||||||
@ -18,43 +18,43 @@ async function loadChoices() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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 = {
|
||||||
data: new SlashCommandBuilder()
|
data: new SlashCommandBuilder()
|
||||||
.setName('add')
|
.setName('add')
|
||||||
.setDescription('Adiciona o servidor à base de dados.')
|
.setDescription('Adiciona o servidor à base de dados.')
|
||||||
|
// Usa autocomplete para a opção "nome"
|
||||||
.addStringOption(option =>
|
.addStringOption(option =>
|
||||||
option.setName('nome')
|
option.setName('nome')
|
||||||
.setDescription('Arisu - Escolhe uma opção')
|
.setDescription('Escolhe uma opção')
|
||||||
.setRequired(true)
|
.setRequired(true)
|
||||||
// Se as escolhas ainda não estiverem carregadas, defina um conjunto padrão para evitar erros.
|
.setAutocomplete(true)
|
||||||
.addChoices(...(dynamicChoices.length ? dynamicChoices : [
|
|
||||||
{ name: 'Opção Padrão 1', value: '0' },
|
|
||||||
{ name: 'Opção Padrão 2', value: '1' }
|
|
||||||
]))
|
|
||||||
)
|
)
|
||||||
|
// Outra opção também com autocomplete (se necessário)
|
||||||
.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(...(dynamicChoices.length ? dynamicChoices : [
|
.setAutocomplete(true)
|
||||||
{ name: 'Opção Padrão 1', value: '0' },
|
|
||||||
{ name: 'Opção Padrão 2', value: '1' }
|
|
||||||
]))
|
|
||||||
),
|
),
|
||||||
|
|
||||||
async execute(interaction, client) {
|
async execute(interaction, client) {
|
||||||
// Lógica do comando
|
// Se a interação for do tipo autocomplete, trata-a separadamente
|
||||||
|
if (interaction.isAutocomplete()) {
|
||||||
|
const focusedOption = interaction.options.getFocused(true);
|
||||||
|
try {
|
||||||
|
const choices = await loadChoices();
|
||||||
|
// Filtra os resultados com base no valor digitado pelo usuário
|
||||||
|
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([]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Se não for autocomplete, segue a execução normal do comando
|
||||||
const guildId = interaction.guild.id;
|
const guildId = interaction.guild.id;
|
||||||
const guildName = interaction.guild.name;
|
const guildName = interaction.guild.name;
|
||||||
const guildownerId = interaction.guild.ownerId;
|
const guildownerId = interaction.guild.ownerId;
|
||||||
@ -63,7 +63,6 @@ module.exports = {
|
|||||||
console.log(`guildName: ${guildName}`);
|
console.log(`guildName: ${guildName}`);
|
||||||
console.log(`guildownerId: ${guildownerId}`);
|
console.log(`guildownerId: ${guildownerId}`);
|
||||||
|
|
||||||
// Responde imediatamente para evitar timeout
|
|
||||||
await interaction.deferReply();
|
await interaction.deferReply();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user