Java 如何检查用户是否在discord上扮演角色

Java 如何检查用户是否在discord上扮演角色,java,discord,discord-jda,Java,Discord,Discord Jda,我正在努力寻找一种方法来检查用户是否有角色。 我知道如何找到某个角色: public Role findRole(Guild guild, String name) { List<Role> roles = guild.getRolesByName(name, true); if (roles.size() <= 0) { throw new RuntimeException("Role with name " + name + " on Gu

我正在努力寻找一种方法来检查用户是否有角色。 我知道如何找到某个角色:

public Role findRole(Guild guild, String name) {
    List<Role> roles = guild.getRolesByName(name, true);

    if (roles.size() <= 0) {
        throw new RuntimeException("Role with name " + name + " on Guild " + guild.getName() + " not found!");
    } else {
        return roles.get(0);
    }
}
public Role findRole(公会,字符串名称){
List roles=guild.getRolesByName(name,true);

如果(roles.size()该
成员
对象将用户置于帮会上下文中。您可以使用
帮会#获取成员(用户)
获取该成员。这使您可以选择检索该用户的帮会信息:

Member-Member=guild.getMember(用户);
Member Member=guild.getMemberById(userId);
List member=guild.getMembersByName(name,true);
List member=guild.getMembersByRoles(角色);
公共角色findRole(成员,字符串名称){
List roles=member.getRoles();
返回角色。stream()
.filter(角色->角色.getName().equals(名称))//按角色名称筛选
.findFirst()//获取第一个结果
.orElse(null);//否则返回null
}

访问成员实例的其他方法在成员文档的
部分有概述:。如果事件可能发生在帮会上下文中,某些事件还提供
getMember()
替代方法。

由于文档中还没有此类功能,您可以执行以下操作:

boolean hasRole;
  for(int i=0; i<builder.getGuildById(guild).getMemberById(userId).getRoles().size(); i++){
    if("RoleName".equals(builder.getGuildById(guild).getMemberById(userId).getRoles().get(i).getName())){
      hasRole = true;
    }
  }
boolean角色;

对于(int i=0;我非常感谢你,搜索这篇文章的几天,你帮了我很多,很有效,再次感谢你!