Estaba tratando de hacer un comando de barra oblicua con discord.js v13, ¡pero me da un error! ¿Qué ocurre?
const { MessageEmbed } = require("discord.js"); module.exports = { data: new SlashCommandBuilder() .setName('ban') .setDescription('Ban someone!') .addUserOption(option => option.setName('user').setDescription('Select a user').setRequired(true)) .addStringOption(option => option.setName('reason').setDescription('Enter a reason').setRequired(true)) , async execute(interaction) { if (!interaction.member.permissions.has("BAN_MEMBERS")) return interaction.reply({ content: "Jij kan dit niet doen", ephemeral: true }); const banUser = interaction.options.getUser('user'); const reason = interaction.options.getString('reason'); let member = interaction.options._hoistedOptions[0] console.log(member); console.log(banUser); console.log(interaction.options); member.ban({ reason: reason }).catch(err => { if (err) return interaction.reply({ content: `Er is een fout opgetreden tijdens het uitvoeren van dit commando!\nMogelijke redenen: \n- De gebruiker zit niet in de server;\n- De gebruiker heeft een te hoge rang;\n- Ik heb niet genoeg permissies om dit commando uit te voeren.`, ephemeral: true }) console.log(err) }); var logEmbed = new MessageEmbed() .setColor("BLURPLE") .setFooter({ text: interaction.member.displayName, iconURL: interaction.user.displayAvatarURL }) .setTimestamp() .setDescription(`**Gebanned:** ${member.user.username} (${member.id}) **Ban door:** ${interaction.author} **Reden:** ${reason}`); const logChannel = interaction.client.channels.cache.get("934107862072950814"); if (!logChannel) return interaction.reply({ content: "Ik kan niet bij het logs kanaal, meld dit bij de bot developer!", ephemeral: true }); logChannel.send({ embeds: [logEmbed] }); }, };Mi error:
TypeError: member.ban no es una función
¿Alguien sabe cómo arreglar?
Use interaction.options.getMember() para obtener el objeto GuildMember
let member = interaction.options.getMember('user')Será mejor que uses esto, porque no necesitas buscar al usuario:
interaction.guild.bans.create(banUser.id, {reason: "reason here"}).then(u => { //u is the user so you can get his nickname or id //your code here });