require('discord-inline-reply'); const { MessageEmbed } = require("discord.js"); const { ownerID } = require("../../owner.json") const db = require('quick.db') module.exports = { config: { name: "roleadd", description: "Add a role to a member", usage: "m/roleadd <member mention/id> <role mention/role id>", aliases: ['role add', 'radd', 'role'] }, run: async (client, message, args) => { let rMember = message.mentions.members.first() || message.guild.members.cache.get(args[0]); if(!rMember) return message.channel.send("Please provide a user to add a role too.") let role = message.guild.roles.cache.find(r => r.name == args[1]) || message.guild.roles.cache.find(r => r.id == args[1]) || message.mentions.roles.first() if(!role) return message.channel.send("Please provide a role to add to said user.") if(rMember.roles.cache.has(role.id)) { return message.channel.send(`${rMember.displayName}, already has the role!`) } else { await rMember.roles.add(role.id).catch(e => console.log(e.message)) message.channel.send(`${rMember.displayName} has been added to **${role.name}**`) } }, };El bot solo asigna un rol incluso si el usuario tiene un rol inferior al del usuario. Quiero agregar una verificación de posición de rol. ¿Alguien puede ayudar?
Para obtener el rol más alto de miembro, debe usar GuildMemberRoleManager.highest y usar Role.rawPosition para obtener su posición en la lista.
Entonces lo que necesitas es:
if (rMember.roles.highest.rawPosition < role.rawPosition) return;