向用户列表批量分配角色 discord.js v13
Mass assign roles to the list of users discord.js v13
此代码将指定角色分配给成员列表。
当我尝试从 message.guild.members.
获取具有用户 ID 的成员时出现的问题
代码
// !roleAssign @role
const roleAssign = async function(message){
const Role = message.mentions.roles.first();
// split by new line
const users = message.content.slice(prefix.length).split(/\r?\n/).slice(1);
let members = await message.guild.members.fetch();
users.forEach(user => {
const u = client.users.cache.find(u => u.tag === user);
if(u){
const userId = u.id;
// member with the userID
let member = members.cache.get(userId);
// give role to the member
try{
member.roles.add(Role)
}
catch(e){console.error(e)};
});
}
我收到这个错误。
如何对获取的成员使用 get 函数?
let member = members.cache.get(userId);
^
TypeError: Cannot read properties of undefined (reading 'get')
这是因为 guild.members.fetch()
returns 是一个集合,而不是 GuildMemberManager
有一个 cache
属性。这意味着,您可以像这样使用 Collection#get()
,而无需 cache
:
let member = members.get(userId);
此代码将指定角色分配给成员列表。 当我尝试从 message.guild.members.
获取具有用户 ID 的成员时出现的问题代码
// !roleAssign @role
const roleAssign = async function(message){
const Role = message.mentions.roles.first();
// split by new line
const users = message.content.slice(prefix.length).split(/\r?\n/).slice(1);
let members = await message.guild.members.fetch();
users.forEach(user => {
const u = client.users.cache.find(u => u.tag === user);
if(u){
const userId = u.id;
// member with the userID
let member = members.cache.get(userId);
// give role to the member
try{
member.roles.add(Role)
}
catch(e){console.error(e)};
});
}
我收到这个错误。 如何对获取的成员使用 get 函数?
let member = members.cache.get(userId);
^
TypeError: Cannot read properties of undefined (reading 'get')
这是因为 guild.members.fetch()
returns 是一个集合,而不是 GuildMemberManager
有一个 cache
属性。这意味着,您可以像这样使用 Collection#get()
,而无需 cache
:
let member = members.get(userId);