// comandos/add.js const { InteractionContextType, PermissionFlagsBits, SlashCommandBuilder, MessageFlags } = require('discord.js'); const conn = require('../../../database/db'); // Ajusta o caminho console.error("--------------------- adicionar_membro.js ---------------------"); module.exports = { data: new SlashCommandBuilder() .setName('addmembro') .setDescription('Adiciona o servidor à base de dados.') .addUserOption(option => option.setName('nome') .setDescription('The member to ban') .setRequired(true) ) .addStringOption(option => option.setName('cargo') .setDescription('Escolhe uma opção') .setRequired(true) .setAutocomplete(true) // ATENÇÃO AQUI ), //.addStringOption(option => // option.setName('raça') // .setDescription('Escolhe uma opção') // .setRequired(true) // .setAutocomplete(true) // ATENÇÃO AQUI //), async execute(interaction) { const nome = interaction.options.getUser('nome'); const cargo = interaction.options.getString('cargo'); // const raça = interaction.options.getString('raça') ?? 'No reason provided' const urlavatar = interaction.user.displayAvatarURL({ extension: 'jpg' }); const idavatar = urlavatar.split('/').pop().split('.')[0]; const url = `https://cdn.discordapp.com/avatars/${nome.id}/${idavatar}.jpg`; console.log(idavatar); await interaction.reply(`Selecionaste: \r nome:${nome}\r id:${nome.id} \r cargo:<@&${cargo}>(${cargo}) \r url:${url}\r idavatar:${idavatar}`); // 1 - Verificar se já existe no banco const [existing] = await conn.execute( `SELECT * FROM users WHERE discord_id = ?`, [nome.id] ); if (existing.length > 0) { return await interaction.reply({ content: `❗ O membro ${nome.username} já está registrado no banco de dados.`, ephemeral: true }); } // 2 - Inserir no banco await conn.execute( `INSERT INTO users (discord_id, discord_avatar, discord_username, cargo, level) VALUES (?, ?, ?, ?, ?)`, [nome.id, idavatar,nome.username, cargo, "0"] ); // 3 - Pegar o membro na guilda const member = await interaction.guild.members.fetch(nome.id); // 4 - Verificar se o membro já tem o cargo if (member.roles.cache.has(cargo)) { return await interaction.editReply({ content: `❗ O membro ${nome.username} já possui o cargo <@&${cargo}>.`, ephemeral: true }); } // 5 - Adicionar o cargo await member.roles.add(cargo); }, };