是否可以检查成员是否具有管理员权限

时间:2021-02-15 14:01:23

标签: javascript node.js discord.js

是否可以在 responsive: {} 循环中检查 Discord 服务器的成员是否具有管理员权限? bcz 因为我想禁止所有在我和我朋友的服务器中在我的机器人下扮演角色的人。我该怎么做?

在我的代码中

for

但是我得到一个错误,错误说:

else if (message.content === `${prefix}lmao`)  {
    message.guild.members.cache.map(member => member.ban({reason: 'lol u got banned'}));

我该怎么做才能让我的机器人禁止所有在我的机器人下担任角色的人?

1 个答案:

答案 0 :(得分:1)

禁止公会中的大量成员不是一个好主意

然而,

您可以使用 GuildMembers#forEach 根据条件禁止多个成员。根据您的问题,您想禁止那些没有拥有ADMINISTRATOR

的人

使用 Promise#catch 检测失败的禁令。 Promise#then 只会在禁令成功时触发

const GuildMembers = message.guild.members.cache;

GuildMembers.forEach(member => {
   if (!member.hasPermission('ADMINISTRATOR')) {
      member.ban({ reason: 'lol u got banned' })
         .then(_ => {
            message.channel.send(`${member.displayName} successfully banned`);
         })
         .catch(err => {
            message.channel.send(`Failed to ban ${member.displayName}`);
            console.log(err);
         });
   }
});