Home > Net >  TypeError: <member>.ban is not a function
TypeError: <member>.ban is not a function

Time:02-05

I was trying to make a ban slash command with discord.js v13, but it gives me an error! Whats wrong?

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] });

    },
};

My error:

TypeError: member.ban is not a function

Does someone know how to fix?

CodePudding user response:

Use interaction.options.getMember() to get the GuildMember object

let member = interaction.options.getMember('user')

CodePudding user response:

You better use this, cause you don't need to fetch user:

interaction.guild.bans.create("id of the user here", {reason: "reason here"}).then(u => {
//u is the user so you can get his nickname or id
//your code here
});
  •  Tags:  
  • Related