繁体   English   中英

批量角色分配给用户(discord.js v13)

[英]Mass role assign to users (discord.js v13)

此代码将角色分配给由换行符分隔的用户列表,但仅限于缓存中的用户。 如何为此代码实现 message.guild.members.fetch() 以将角色分配给所有用户?

//command
!roleAssign @role
name#1234
name#2234
name#3234
const roleAssign = function(message){
  const Role = message.mentions.roles.first();
  // split by new line
  const users = message.content.slice(prefix.length).split(/\r?\n/).slice(1);
  const success = [];

  users.forEach(user => {
    const u = client.users.cache.find(u => u.tag === user);
    if(u){
      const userId = u.id;
      // person with the userID
      let person = message.guild.members.cache.get(userId);
      // give role to person

      try{
        person.roles.add(Role)
      }
      catch(e){console.error(e)};

      if(person.roles.cache.has(Role.id)){
        success.push(user);
      }
      }
  });

  message.channel.send(`Added role ${Role.name} to\n${success.map(user => user).join("\n")}`);
}

我尝试了这个但是得到了TypeError: Cannot read properties of undefined (reading 'find')

message.guild.members.fetch().then((members)=>{
  message.cache.find(u => u.tag === user);
})
let members = await message.guild.members.fetch()

members.filter(user => !user.bot).tap(message.guild => {

})

暂无
暂无

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

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