'公共类VerificationSystem扩展了ListenerAdapter {
@Override
public void onGuildMemberJoin(GuildMemberJoinEvent event) {
System.out.println("WORKS!");
String memberName = event.getMember().getEffectiveName();
Member member = event.getMember();
event.getGuild().addRoleToMember(member,event.getGuild().getRoleById("1034143551568752682")).queue(); //Grants the new member "Unverified" role
TextChannel textChannel = event.getGuild().createTextChannel("Verification for: " + memberName).complete(); // Creates new verification channel
textChannel.getManager().getChannel().upsertPermissionOverride(event.getMember()).setAllowed(Permission.VIEW_CHANNEL).queue(); // Grants the new member view permissions to the channel
textChannel.getManager().getChannel().upsertPermissionOverride(event.getGuild().getRoleById("1034143551568752682")).setDenied(Permission.VIEW_CHANNEL).queue(); // Revokes the view permission for @everyone
}`
事件寄存器:
JDA jda = JDABuilder.createDefault(token)
.setActivity(Activity.playing("Football Manager"))
.addEventListeners(new VerificationSystem())
.build().awaitReady();
由于某种原因,这个方法不工作。它是正确注册的,它不工作,每当有人加入服务器。请帮助,这是杀了我!!
1条答案
按热度按时间yhxst69z1#
自从Discord的一个更新增加了“Intents”这样的东西。现在所有的开发者都必须指定他们的机器人需要什么样的数据。要接受成员加入的事件,你需要使用intent“GUILD_MEMBERS”。注意这个intent是priveleged,这意味着你可以很容易地使用它,直到你的机器人达到100台服务器,然后你必须从Discord得到验证。
enableIntents
方法。