【问题标题】:Discord.JS - Find if a user has a roleDiscord.JS - 查找用户是否有角色
【发布时间】:2021-04-11 22:47:46
【问题描述】:

我正在执行最基本的静音命令,我需要查找用户是否有一个名为“静音”的角色

我已经添加了下面的代码,但我一直收到错误。

 if (command === "mute") {
    const { member, mentions } = message
     const mutee = message.mentions.users.first();  
     const muter = message.author
     console.log(mutee)

     if(member.hasPermission('ADMINISTRATOR')) {
       let muteRole = message.guild.roles.cache.find(role => role.name === "Muted");
     if (message.guild.members.get(mutee.id).roles.cache.has(muteRole.id)) {
       message.channel.send(new MessageEmbed() .setTitle(`Uh Oh!`) .setDescription(`${mutee.user} already has been Muted!`))
     }
     else {

     }
     }
   }

【问题讨论】:

  • 你遇到了什么错误?
  • 1) 成员有角色,而不是用户。 2)你应该检查message.guild.members.cache而不是message.guild.members

标签: discord.js


【解决方案1】:

首先,我建议您直接获取提到的成员,而不是使用const mutee = message.mentions.members.first(); 的用户。 (如果你在公会频道下使用命令)

然后,您可以简单地检查他是否具有以下角色:

if (mutee.roles.cache.has(muteRole.id))

【讨论】:

  • 我建议使用.has(muteRole.id) insted of .get()
猜你喜欢
  • 2021-04-06
  • 2021-01-02
  • 2021-10-15
  • 2021-10-25
  • 2021-11-15
  • 2022-01-19
  • 2023-03-03
  • 2021-02-24
  • 2020-09-21
相关资源
最近更新 更多