Java Discord API onGuildMemberJoin Событие не срабатывает, когда подписчик Twitch присоединяется к серверу. - PullRequest
0 голосов
/ 18 марта 2020

Мой брат - стример на Twitch, и чтобы помочь сделать его разногласия более интерактивными, я сказал, что сделаю для него индивидуального бота. Ранее у него был бот, который он использовал только для назначения роли по умолчанию участникам, присоединившимся к серверу, но я сказал ему, что просто добавлю эту функцию в созданного мною бота. Эта функция работает нормально для обычных пользователей, пока кто-то, кто является дерзким подписчиком, не присоединится к серверу, они автоматически получат свои подписные роли через разногласия, но событие onGuildMemberJoin для моего бота вообще не срабатывает. Вот мой код для этого:

import data.Data;
import net.dv8tion.jda.api.events.guild.member.GuildMemberJoinEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;

public class UserJoin extends ListenerAdapter {

    public void onGuildMemberJoin(GuildMemberJoinEvent e){
        String userId = e.getMember().getUser().getId();
        String userName = e.getMember().getUser().getName();

        try{
            e.getGuild().addRoleToMember(userId, e.getGuild().getRoleById(Data.prop.getProperty("defaultRole"))).queue();
            Data.addUserToDB(userId, userName);
        }
        catch (Exception ex){
            ex.printStackTrace();
        }
        System.out.println("Added default role to " + userName);
    }
}
...