首页 > 解决方案 > JDA - 如果添加了某个角色,则向用户添加角色

问题描述

我正在尝试编写一个不和谐的机器人,如果向用户添加了一个角色,它就会向他添加一个新角色。我被困在角色添加部分。

这是我的代码。我希望有人能帮帮忙:

import net.dv8tion.jda.api.events.guild.member.GuildMemberRoleAddEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;

import java.util.List;

public class TeamAutorole extends ListenerAdapter {
    @Override
    public void onGuildMemberRoleAdd(GuildMemberRoleAddEvent e) {
        if(e.getRoles().toString().contains("\uD83D\uDC6ESupporter")) {


        }
    }
}

标签: javadiscorddiscord-jda

解决方案


首先,您要检查成员的角色列表是否包含您想要的角色,然后根据该角色添加另一个角色。

//gets role with name "\uD83D\uDC6ESupporter"
Role supporter = e.getGuild().getRolesByName("\uD83D\uDC6ESupporter", true).get(0);

//gets role with name "Dummy"
Role dummy = e.getGuild().getRolesByName("Dummy", true).get(0);

//check if the list of roles of the user contains the role supporter
if (e.getMember().getRoles().contains(supporter)) {
    
    //adds role dummy to member
    e.getGuild().addRoleToMember(e.getMember(), dummy).queue();

}

推荐阅读