如何检查成员是不是具有特定角色
Posted
技术标签:
【中文标题】如何检查成员是不是具有特定角色【英文标题】:how to check if member has a specific role如何检查成员是否具有特定角色 【发布时间】:2020-10-12 09:24:37 【问题描述】:我想为我的 discord 机器人执行此命令以向成员添加角色。
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();
现在我希望该命令仅在成员不具有“团队 2”角色时才起作用
【问题讨论】:
【参考方案1】:我对 discord api 不是很熟悉,但是像这样的东西呢:
if(m.getGuild().getRoleById(the ID of team 2) != null)
....
顺便说一句,您问题中的代码格式会很好
【讨论】:
【参考方案2】:你好,下面是代码示例:
Role role = guild.getRoleById(661155250123702302L);
if(member.getRoles().contains(role))
// Member has the role
else
// Member dont has the role
您只需将 RoleID 更改为您想要的角色的 id,您可以通过转到 Discord 服务器的“服务器设置”获取角色的 id,转到“ 角色”,然后右键单击您的角色并单击“复制 ID”。
如果您没有看到“复制 ID”,您必须通过打开“用户设置”来启用“Discord Developer”模式,转到“外观”,向下滚动到“高级”并打开“开发者模式”。
玩得开心,希望能帮到你!
【讨论】:
【参考方案3】:文档中暂时没有这样的功能。 你仍然可以这样做:
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;
那么,为真if (hasRole)
或假if (!hasRole)
?
【讨论】:
以上是关于如何检查成员是不是具有特定角色的主要内容,如果未能解决你的问题,请参考以下文章
如何检查用户是不是具有特定角色 discord.js v12? [复制]