Java 如何检查成员是否具有特定角色

Java 如何检查成员是否具有特定角色,java,bots,discord,discord-jda,Java,Bots,Discord,Discord Jda,我想为我的discord bot执行此命令以向成员添加角色 public class team1Command implements ServerCommands { public void performCommand(Member m, TextChannel channel, Message message) { m.getGuild().addRoleToMember(message.getMember(), message.getGuild().getRoleById(

我想为我的discord bot执行此命令以向成员添加角色

public class team1Command implements ServerCommands {
    public void performCommand(Member m, TextChannel channel, Message message) {
    m.getGuild().addRoleToMember(message.getMember(), message.getGuild().getRoleById(the ID of team 1)).queue();
    channel.sendMessage("you joined team 1").queue();
    }
}

现在,我希望该命令仅在该成员没有team 2角色时才起作用。我对discord api不是很熟悉,但类似这样的情况如何:

ifm.getGuild.getrolebyidt团队2的ID!=空的{ .... } 顺便说一句,您的问题中的代码格式很好

您好,下面是一个代码示例:

Role role = guild.getRoleById(661155250123702302L);

if(member.getRoles().contains(role)) {
    // Member has the role
}else {
    // Member dont has the role
}
您只需将角色id更改为所需角色的id,您可以通过转到Discord服务器的服务器设置,转到角色,右键单击您的角色,然后单击复制id来获取角色的id

如果看不到复制ID,则必须通过打开用户设置来启用Discord开发人员模式,转到“外观”,向下滚动到“高级”,然后打开“开发人员模式”


祝你玩得开心,我希望我能帮助你

目前文档中没有此类功能。 您仍然可以这样做:

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;
    }
  }
那么,如果为true,则为hasRole;如果为false,则为true!哈斯罗