Reputation:
My current code works like this. If I type command @rolename @user
, my bot gives the mentioned user the mentioned role.
But I want to add every mentioned user the mentioned role: command @rolename @user1 @user2 @user3
Here is my code, but it only adds the role to the first member:
const { MessageEmbed } = require('discord.js')
module.exports = {
name: "addrole",
aliases: ["role", "P!role"],
category: "moderation",
description: "Add role to any user",
run: async (client, message, args) => {
if (!message.member.hasPermission("MANAGE_ROLES")) {
return message.channel.send("sorry you need permission to mute someone");
}
if (!message.guild.me.hasPermission("MANAGE_ROLES")) {
return message.channel.send("I do not have permission to mute");
}
let target = message.mentions.members.first();
if(!target) return message.reply(`<:no:677902165859237894>please mention user!`)
let arole = message.mentions.roles.first();
if(!arole) return message.reply(`<:no:677902165859237894>please mention role for add!`)
let ticon = target.user.avatarURL({ dynamic: true, size: 2048 });
let aicon = message.author.avatarURL({ dynamic: true, size: 2048 });
const embed = new MessageEmbed()
.setColor("RANDOM")
.setDescription(`<a:ok_:731369076315652167>changed role for ${target.user.username} added ${arole}`)
await message.channel.send(embed)
target.roles.add(arole)
}
}
Upvotes: 1
Views: 72
Reputation: 23161
message.mentions.members
returns a collection so you can use the .each
method to add role to every mentioned member:
if (!message.member.hasPermission('MANAGE_ROLES')) {
return message.channel.send('sorry you need permission to mute someone');
}
if (!message.guild.me.hasPermission('MANAGE_ROLES')) {
return message.channel.send('I do not have permission to mute');
}
const { members } = message.mentions;
if (!members.size) {
return message.reply(`<:no:677902165859237894> please mention a user!`);
}
const role = message.mentions.roles.first();
if (!role) {
return message.reply(
`<:no:677902165859237894>please mention role for add!`,
);
}
const embed = new MessageEmbed().setColor('RANDOM');
members.each((member) => {
member.roles.add(role);
embed.setDescription(
`<a:ok_:731369076315652167> role changed for ${member.user}, added ${role}`,
);
message.channel.send(embed);
});
Upvotes: 1