【问题标题】:How to remove a role from every member of the guild如何从公会的每个成员中删除角色
【发布时间】:2019-04-22 07:32:46
【问题描述】:

如何从服务器内的每个用户中删除角色,我尝试使用 let everyone = message.guild.members.getlet everyone = message.guild.members 但它们都不起作用。

这是整个代码:

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"
}

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    只需使用.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}!`);
          })
      })
    }
    

    【讨论】:

    • 非常感谢您帮助我!
    • 没问题~伊顿
    猜你喜欢
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2021-06-16
    • 2021-06-27
    • 1970-01-01
    • 2021-02-14
    • 2021-08-12
    • 2020-11-03
    相关资源
    最近更新 更多