如果我将他们的 ID 作为字符串,如何在 java 中使用不和谐机器人向用户添加角色?
Posted
技术标签:
【中文标题】如果我将他们的 ID 作为字符串,如何在 java 中使用不和谐机器人向用户添加角色?【英文标题】:How do I add a role to a user with a discord bot in java if I have their ID as a String? 【发布时间】:2019-05-31 16:25:38 【问题描述】:我想根据消息中提到的人向不和谐的用户添加角色。我一直在寻找,但是当我将用户的 id 作为字符串时,我找不到任何关于向用户添加角色的信息。要获取提到的人的 id,我使用该行
String name = event.getMember().getUser().getAsMention();
但我不确定在我获得他们的姓名/ID 后如何实际将角色添加到此人。谁能帮我解决这个问题?
【问题讨论】:
【参考方案1】:您必须将作者的 ID 作为长值 才能将其作为成员实例获取
long authorID = event.getMessage().getAuthor().getIdLong();
Member member = event.getGuild().getMemberById(authorID);
Role role = event.getMessage().getMentionedRoles().get(0); //checks for mentioned roles in the message
event
.getGuild()
.getController()
.addSingleRoleToMember(member, role)
.complete();
上面的代码通过访问公会的控制器为成员添加了一个角色。存在 .addRolesToMember()
方法,但要添加多个角色,您需要一个类型为 Collection<Role>
的变量。另外,请确保添加异常处理,因为如果没有提到角色,第三行代码可能会产生异常。
【讨论】:
以上是关于如果我将他们的 ID 作为字符串,如何在 java 中使用不和谐机器人向用户添加角色?的主要内容,如果未能解决你的问题,请参考以下文章