#Error checking member role permissions

1 messages · Page 1 of 1 (latest)

dire sable

Error

if (member.roles.highest.position >= interaction.member.roles.highest.position) {
                             ^

TypeError: Cannot read properties of undefined (reading 'highest')

Code

const { SlashCommandBuilder, EmbedBuilder, PermissionFlagsBits } = require("discord.js");

module.exports = {
    data: new SlashCommandBuilder()
        .setName("kick")
        .setDescription("Kick a member from the server")
        .setDMPermission(false)
        .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers)
        .addUserOption(option =>
            option.setName("member")
                .setDescription("Select a member to kick")
                .setRequired(true)
        ).addStringOption(option =>
            option.setName("reason")
                .setDescription("Provide a reason for the kick")
                .setRequired(false)
        ),

    async execute(interaction) {
        const { options, client, guild } = interaction;

        const user = options.getUser("member");
        const member = await guild.members.fetch(user.id);
        const clientMember = guild.members.me;

        if (clientMember.permissions.has(PermissionFlagsBits.KickMembers)) {
            console.log(member.roles);

            if (member.roles.highest.position >= interaction.member.roles.highest.position) {
                return interaction.reply({
                    embeds: [
                        new EmbedBuilder()
                            .setColor(client.config.colors.error)
                            .setDescription(`You can't take action on **${member.user.displayName}** because they have higher permissions.`)
                    ]
                });
            }

            // Can kick member
        } else {
            // Can't kick member
        }
    }
}