简体   繁体   English

如何从公会的每个成员中删除角色

[英]How to remove a role from every member of the guild

How can I remove a role from every user inside a server, I tried using let everyone = message.guild.members.get and let everyone = message.guild.members but they both didn't work. 我如何从服务器内部的每个用户中删除角色,我尝试使用let everyone = message.guild.members.getlet everyone = message.guild.members但他们都没有用。

Here's the whole code: 这是整个代码:

const Discord = require("discord.js");
const errors = require("../utils/errors.js");

module.exports.run = async(bot, message, args) => {

  if (!message.member.hasPermission("MANAGE_ROLES")) return errors.noPerms(message, "MANAGE_ROLES");

  let role = message.guild.roles.find(`name`, `NSFW`);
  let everyone = message.guild.members.get
  if (args[0] == "help") {
    message.reply("Usage: !nsfwoff");
    return;

    message.channel.send(`NSFW has been turned to OFF, you're now safe from any kind of explicit content!`)

  }
  await (everyone.removeRole(role.id))
    .then(role => console.log(`NSFW OFF: ${message.guild.name}`))
    .catch(console.error);

  message.channel.send(`NSFW has been turned to ON, try !nsfwget to get the NSFW role!`);

}

module.exports.help = {
  name: "nsfwoff"
}

Just use the .forEach() function. 只需使用.forEach()函数。

const Discord = require('discord.js');

module.exports.run = async (bot, message, args) => {
  if(!message.member.hasPermission('MANAGE_ROLES')) return noPermissions();
  let role = message.guild.roles.find(t => t.name == 'NSFW')
  message.guild.members.forEach(member => {
    if(!member.roles.find(t => t.name == 'NSFW')) return;
    member.removeRole(role.id);
        .then(function() {
        console.log(`Removed role from user ${member.user.tag}!`);
      })
  })
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM