const { SlashCommandBuilder, EmbedBuilder, PermissionsBitField } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName(`remove`) .setDescription(`Remove role from a member.`) .addSubcommand(subcommand => subcommand .setName('role') .setDescription(`Remove a role from a member.`).addUserOption(option => option.setName('member').setDescription("The member to lose the role.").setRequired(true)) .addRoleOption(option => option.setName('role').setDescription("The role to remove.").setRequired(true))), async execute(interaction) { let member = interaction.options.getUser('member') let Member = await interaction.guild.members.cache.get(member.id) let role = interaction.options.getRole('role') let roleRemoved = new EmbedBuilder() .setAuthor({ name: `${member.tag} lost a role!`, iconURL: `${member.displayAvatarURL({ dynamic: true})}`}) .setDescription(`**Role:** ${role}`) .setColor("Red") .setTimestamp() let embed = new EmbedBuilder() .setDescription(`<:smike_check_mark:1021812946239758376> Successfully executed the command!`) .setColor('#00ff00') let embedErrorPerms = new EmbedBuilder() .setDescription(`<:smike_x_mark:1009474223657463888> You don't have permission to execute this command!`) .setColor('#ff0000') .setFooter({ text: "Required permission: Manage roles" }) let embedErrorBotPerms = new EmbedBuilder() .setDescription(`<:smike_x_mark:1009474223657463888> I don't have permission to execute this command!`) .setColor('#ff0000') .setFooter({ text: "Required permission: Manage roles" }); let AdminRole = new EmbedBuilder() .setDescription('<:smike_warning:1011578358808727592> I cannot remove roles from a server moderator/admin!') .setColor('#ff0000') let WrongRole = new EmbedBuilder() .setDescription(`<:smike_x_mark:1009474223657463888> I cannot remove this role from anybody because it's higher than mine!`) .setColor('#ff0000') let WrongRole2 = new EmbedBuilder() .setDescription(`<:smike_x_mark:1009474223657463888> I cannot remove this role from any member because its a default role!`) .setColor('#ff0000') let Norole = new EmbedBuilder() .setDescription(`<:smike_x_mark:1009474223657463888> ${member.username} dont't have this role already!`) .setColor("Red") let nu = new EmbedBuilder() .setDescription("<:smike_x_mark:1009474223657463888> The user mentioned is no longer within the server!") .setColor('#ff0000') let embedLol = new EmbedBuilder() .setDescription(`<:smike_x_mark:1009474223657463888> This role cannot be removed!`) .setColor('#ff0000') let e = interaction.guild.roles.cache.find(r => r.name.toLowerCase().trim() === "@everyone" ) if (role === e) return interaction.reply({ embeds: [WrongRole2], ephemeral: true }) if (role.managed) return interaction.reply({ embeds: [embedLol], ephemeral: true}) if (interaction.guild.me.roles.highest.comparePositionTo(role) <= 0) return interaction.reply({ embeds: [WrongRole], ephemeral: true }) if (!Member.roles.cache.has(role.id)) return interaction.reply({ embeds: [Norole], ephemeral: true}) if (!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({ embeds: [embedErrorPerms], ephemeral: true}) if (!interaction.guild.members.me.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({ embeds: [embedErrorBotPerms], ephemeral: true}) if (!Member.kickable) return interaction.reply({ embeds: [AdminRole], ephemeral: true}) if (!Member) return interaction.reply({ embeds: [nu], ephemeral: true }) await Member.roles.remove(role.id) await interaction.reply({ embeds: [embed], ephemeral: true}), interaction.channel.send({ embeds: [roleRemoved] }).catch(err => { return }) } }