向成员 Discord4J 添加角色时的任务权限

Mission Permission When Adding a Role to a Member Discord4J

在我的程序中,我尝试向公会的(新)成员添加角色。但是当我尝试将角色添加到成员时,我收到一条错误消息:“缺少权限”。令人困惑的是,该机器人已经拥有管理角色的权限。在我给机器人管理员权限后,错误仍然出现。


Role studentRole = getRole(STUDENT_ROLE_NAME, tempMem.getGuild().block());
if(studentRole == null){
        tempMem.getPrivateChannel().block().createMessage("Sorry the Server doesn't have a \"Student\" Role contact admins for help!");
        return;
}
tempMem.addRole(studentRole.getId()).block();
tempMem.getPrivateChannel().block().createMessage("Successfully added you as a Student! Have fun :smile:");

对代码的一些进一步解释: 成员 tempMem: 是应该接收学生角色的成员。 Role getRole(String name, Guild guild): 是一种方法,它只查看公会中的角色列表,returns 具有正确名称的角色范围。 这个机器人所在的每个公会都应该有一个名称为 STUDENT_ROLE_NAME 的角色。 如果一切正常,此代码段应该只获取学生角色并将其分配给 tempMem。

正如上面已经说过的,我尝试为机器人授予比学生角色“更高”的权限,但解决方案只是将机器人的角色转移到学生的角色之上。 所以缺少权限错误实际上是正确的