【问题标题】:Discord.js Add / Remove role in 1 commandDiscord.js 在 1 个命令中添加/删除角色
【发布时间】:2021-12-13 18:02:55
【问题描述】:

V12 代码

我想让任何具有特定角色或管理频道权限的人都可以使用此命令,但它不起作用,它只允许具有管理频道权限的人而不是具有特定角色的人。

问题代码

if (!message.member.roles.cache.has('845453361008476190') || !message.member.hasPermission('MANAGE_CHANNELS')) return message.channel.send("sorry, you do not have permission to use command.")

完整代码

const prefix = process.env.PREFIX;
module.exports = {
  name: 'vip',
  category: 'moderation',
  aliases: ['v'],
  description : 'Used give VIP to a User ',
  usage: `${prefix}vip <@user>`,
  run : async(client, message, args) => {
    if (!message.member.roles.cache.has('845453361008476190') || !message.member.hasPermission('MANAGE_CHANNELS')) return message.channel.send("sorry, you do not have permission to use command.")
    const guild = client.guilds.cache.get("842019142118014996");
    const role = guild.roles.cache.get("845453369564856361");
    const aUser = message.mentions.users.first(); 
    if (!aUser) return message.channel.send("Can't find user!");
    const member = await guild.members.fetch(aUser.id);
    if (member.roles.cache.get(role.id)) {
      return (
        member.roles.remove(role),
        message.channel.send(`Removed VIP role from ${aUser.tag}`)
      );
    } else {
      await member.roles.add(role),
      message.channel.send(`${aUser.tag} Sucessfully got VIP role.`);
    }
  } 
};     

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    这会检查用户是否没有所需的角色,或者没有所需的权限。将 OR 运算符 (||) 更改为 AND 运算符 (&amp;&amp;),这样如果检查用户是否没有所需的角色,也没有所需的权限,请尽早返回

    if (!message.member.roles.cache.has('845453361008476190') && !message.member.hasPermission('MANAGE_CHANNELS'))
    

    【讨论】:

      猜你喜欢
      • 2021-09-26
      • 2020-01-04
      • 2021-05-14
      • 2020-08-24
      • 1970-01-01
      • 2023-03-15
      • 2021-11-03
      • 2021-06-28
      • 2021-01-28
      相关资源
      最近更新 更多