Discordjs检查用户是否有角色

问题描述 投票:0回答:2

我有这个代码工作正常,我只需要检查用户是否有角色,它记录所有用户,他们的ID,鉴别器和用户名exc。我只是无法获得这些角色。你能帮忙吗?

client.on('ready', () => {
  console.log(`logged in as ${client.user.username}`);

    var Count;
    for(Count in client.users.array()){
       var User = client.users.array()[Count];
       if(User.username == "someUsername"){
         //User.sendMessage("you");
       }
       //User.checkRole("Admin");

    }
}

qazxsw poi功能是我编造的。我只是需要一些帮助。

checkRole()
node.js discord discord.js
2个回答
3
投票

要访问角色,您必须通过公会而不是用户来接近它。 (正如@Wright所说)

我会使用地图来保存所有公会成员,然后通过每个成员(当你遇到一个具有特定角色名称的那个时,你仍然可以访问guildobject(因为它是一个guildmember对象)

client.on('ready', () => {
    console.log(`logged in as ${client.user.username}`);

    var Count;
    for(Count in client.users.array()){
       var User = client.users.array()[Count];
       if(User.hasRole("Admin")){
          console.log(User.username);
       }
    }
})

我得到的输出是(我审查了用户名):m = client.guilds.map(function (obj) { return obj.members; }); for (var i = 0; i < m.length; i++) { console.log("\n\nNew Guild: "); console.log(m[i].map(function (obj) { return obj.guild.name + " , " + obj.user.username + " : " + obj._roles; }).join('\n')); }


0
投票

你可以这样做:

Output

// assuming role.id is an actual ID of a valid role: if(message.member.roles.has(role.id)) { // user has that role } else { //user doesn't have that role }

© www.soinside.com 2019 - 2024. All rights reserved.