Мой брат - стример на 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);
}
}