如果我将他们的 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 中使用不和谐机器人向用户添加角色?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 id 数组作为字符串连接和查询到另一个表中?

选择多行作为数组

如何检测 Java 字符串中的 unicode 字符?

Oracle PL/SQL:如何根据同一记录的 ID 字段返回字符串值?

如何在 PHP 整数中保留前导零 [重复]

mongoose 在 express 中使用 _id 链接两个集合,并将 id 作为数字或字符串插入