[英]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.