diff --git a/commands/setnick.js b/commands/setnick.js new file mode 100644 index 0000000..799de26 --- /dev/null +++ b/commands/setnick.js @@ -0,0 +1,39 @@ +const { SlashCommandBuilder, PermissionFlagsBits, userMention } = require('discord.js') + +module.exports = { + name: 'setnick', + description: 'Set your nickname', + type: 'slash', + + data: new SlashCommandBuilder() + .setName('setnick') + .setDescription('Set your nickname') + .addUserOption(option => + option + .setName('user') + .setDescription('The user to set the nickname for') + .setRequired(true)) + .addStringOption(option => + option + .setName('nickname') + .setDescription('The nickname to set') + .setRequired(true)) + .setDefaultMemberPermissions(PermissionFlagsBits.ManageNicknames) + .setDMPermission(false), + + async execute(interaction) { + + const user = interaction.options.getUser('user'); + const nickname = interaction.options.getString('nickname'); + const member = await interaction.guild.members.fetch(user.id); + + if (!member.manageable) { + return interaction.reply({ content: 'I cannot set the nickname for this user!', ephemeral: true }); + } + + await member.setNickname(nickname, `Set by ${interaction.user.tag}#${interaction.user.discriminator}`); + + await interaction.reply({ content: "Set the nickname of " + userMention(member.id) + " to " + nickname, ephemeral: true }); + + } +} \ No newline at end of file