const { SlashCommandBuilder, PermissionsBitField } = require('discord.js') const { execute } = require('../../events/ready') module.exports = { data: new SlashCommandBuilder() .setName('add-role') .setDescription('Add a role to a user') .addUserOption(option => option .setName('target-user') .setDescription('Target User') .setRequired(true)) .addRoleOption(option => option .setName('target-role') .setDescription('Target Role') .setRequired(true)) .setDMPermission(false), async execute(interaction) { await interaction.deferReply({ ephemeral: true }) if (!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) { return await interaction.editReply('You need `manage roles` permission to execute this command') } const targetUser = interaction.options.getMember('target-user') const targetRole = interaction.options.getRole('target-role') try { if (targetUser.roles.cache.some(role => role.name === `${targetRole}`)) { return await interaction.editReply(`The user already have that role`) } else { targetUser.roles.add(targetRole) await interaction.editReply(`${targetRole} Has been assigned to ${targetUser}`) } } catch (error) { console.log(`Error ${error}`) } } }