我正在做一个音乐机器人,正在处理stop命令。该命令运行良好,一切都很好,但是我的权限存在问题。该命令的权限为MANAGE_CHANNELS或DJ角色。以DJ角色运行命令时,一切正常,但是以MANAGE_CHANNELS运行命令时,它返回用户无权访问。
var role = message.guild.roles.cache.find(role => role.id === djrole);
if(!message.member.hasPermission("MANAGE_CHANNELS") && !message.member.roles.cache.find(role => role.id === djrole)) {
const missingPerms = new Discord.MessageEmbed()
.setColor("A3F9D0")
.setTitle(`${deny} Missing Permissions & Roles!`)
.setDescription(`**__Required Permissions__**
\`MANAGE_CHANNELS\`
**__Required Roles__**
\`${role.name}\``)
.setFooter(`Command ran by ${message.author.username}`)
message.reply(missingPerms)
.then((m) => {
m.delete({ timeout: 5000 })
})
.catch(console.error);
return false;
}
对我来说,这个例子有效:
var role = message.guild.roles.cache.find(role => role.id === djrole);
if(!message.member.hasPermission("MANAGE_CHANNELS") &&
!message.member.roles.cache.has(role)) {
const missingPerms = new Discord.MessageEmbed()
.setColor("A3F9D0")
.setTitle(`${deny} Missing Permissions & Roles!`)
.setDescription(`**__Required Permissions__**
\`MANAGE_CHANNELS\`
**__Required Roles__**
\`${role.name}\``)
.setFooter(`Command ran by ${message.author.username}`)
message.reply(missingPerms)
.then((m) => {
m.delete({ timeout: 5000 })
})
.catch(console.error);
return false;
我刚刚编辑了第二行代码。这是检查用户是否具有特定角色的常用方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句