Discordjs 检查用户是不是有角色

Posted

技术标签:

【中文标题】Discordjs 检查用户是不是有角色【英文标题】:Discordjs check if a user has a roleDiscordjs 检查用户是否有角色 【发布时间】:2018-06-10 06:41:19 【问题描述】:

我的这段代码运行良好,我只需要检查用户是否有角色,它会记录所有用户,包括他们的 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");

    

checkRole() 函数是我自己编造的。我只是需要一些帮助。

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);
       
    
)

【问题讨论】:

什么?您不能通过他们的User 对象访问用户的角色。你可以从 guildMember 对象中得到它。如果用户在 3 个服务器中怎么办。你认为他们会在所有 3 中扮演相同的角色吗 这正是我要问的,感谢@Wright 的回答 【参考方案1】:

你可以这样做:

// 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

https://anidiotsguide.gitbooks.io/discord-js-bot-guide/information/understanding-roles.html

【讨论】:

问题是,那里的消息变量是什么?我不想在消息中获取用户角色,我想在客户端机器人准备好后立即获取它@DiegoFrancisco @turmuka 你能提供更多代码让我更好地理解吗? 请检查我的新更新,没有message 对象,所以它是未定义的。我知道我可以使用client.on('message', (message)),但这不是我想做的。我想获得client.on('ready', ())@DiegoFrancisco 下的用户角色 目前 discord.js 似乎无法在不访问消息的情况下获取用户角色。 @DiegoFrancisco 最后评论不正确。您可以访问公会对象。【参考方案2】:

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

我会使用地图来保存所有公会成员,然后遍历每个成员(这样,当您遇到具有特定角色名称的成员时,您仍然可以访问公会对象(因为它是公会成员对象)

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'));

我得到的输出是(我删掉了用户名):

【讨论】:

嗨,感谢您的回答。有没有办法获取用户的电子邮件?

以上是关于Discordjs 检查用户是不是有角色的主要内容,如果未能解决你的问题,请参考以下文章

检查用户是不是有角色 - 解析云代码

如何检查未登录用户是不是有角色?

如何检查用户是不是有任何角色 discord.js

DiscordJS 13用户嵌入显示在特定频道发送的最后一条消息

DNN 检查用户是不是在角色组中

检查用户是不是有角色 Discord.net