Yes you can do this, you just want to find the role first and then run an if statement to check if the user has this role before calling .execute(message, args);
This can be done like this:
client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === 'ping') {
client.commands.get('ping').execute(message, args);
} else if (command == 'youtube') {
client.commands.get('youtube').execute(message, args);
} else if (command == 'clear') {
client.commands.get('clear').execute(message, args);
} else if (command == 'mute') {
if (message.member.roles.cache.some(role => role.name == "Owner")) {
client.commands.get('mute').execute(message, args);
} else {
message.reply("You are unable to use this command");
}
} else if (command == 'unmute') {
if (message.member.roles.cache.some(role => role.name == "Owner")) {
client.commands.get('unmute').execute(message, args);
} else {
message.reply("You are unable to use this command");
}
}
});
You should avoid having multiple listeners for the same event and just use one. Also, note that there will be no member
object in message
if the message was sent in a DM
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…