Estoy tratando de averiguar si el autor de un comando tiene los permisos correctos para ejecutar el comando. Pero la consola sigue diciendo TypeError: Cannot read property 'permission' of undefined . Aquí está mi código.
name: 'mute', description: 'mutes someone', execute(message,args) { const target = message.mentions.members.first(); const muteRole = message.guild.roles.cache.find(role => role.name === 'MUTED') let sender = message.author let role = message.member.roles if(!target || !message.user.permission.has('MANAGE_ROLES') ) { message.channel.send("You cant mute that member.") } else if(message.sender.permission.has('MANAGE_ROLES')) { target.roles.set([muteRole]) //target.roles.add(muteRole) message.channel.send("User has been muted") } } } Sé que no puede encontrar al autor, pero no sé cómo solucionarlo. También creo que el message.user.permission.has('MANAGE_ROLES') también está mal, pero nuevamente no sé cómo solucionarlo. En línea tiene información contradictoria.
Ok ya encontre la respuesta
const { Permissions } = require('discord.js'); module.exports = { name: 'mute', description: 'mutes someone', execute(message,args) { const target = message.mentions.members.first(); const muteRole = message.guild.roles.cache.find(role => role.name === 'MUTED') let user = message.author; if(!target || !message.member.permissions.has('MANAGE_ROLES')) { message.channel.send("You cant mute that member.") } else if(message.member.permissions.has('MANAGE_ROLES')) { target.roles.set([muteRole]) //target.roles.add(muteRole) message.channel.send("User has been muted") } } }Reemplace el mensaje.usuario.permisos.has('MANAGE_ROLES') con:
message.member.permission.has('MANAGE_ROLES')Esto usa el objeto GuildMember en lugar del objeto User porque no puede obtener roles de un objeto User.