|
21 | 21 | import net.dv8tion.jda.api.entities.Member; |
22 | 22 | import net.dv8tion.jda.api.entities.Message; |
23 | 23 | import net.dv8tion.jda.api.events.GenericEvent; |
24 | | -import net.dv8tion.jda.api.events.automod.AutoModExecutionEvent; |
25 | | -import net.dv8tion.jda.api.events.automod.GenericAutoModRuleEvent; |
26 | | -import net.dv8tion.jda.api.events.emoji.GenericEmojiEvent; |
27 | | -import net.dv8tion.jda.api.events.guild.GuildAuditLogEntryCreateEvent; |
28 | | -import net.dv8tion.jda.api.events.guild.GuildBanEvent; |
29 | | -import net.dv8tion.jda.api.events.guild.GuildUnbanEvent; |
30 | | -import net.dv8tion.jda.api.events.guild.invite.GenericGuildInviteEvent; |
31 | | -import net.dv8tion.jda.api.events.guild.member.GenericGuildMemberEvent; |
32 | | -import net.dv8tion.jda.api.events.guild.member.GuildMemberRemoveEvent; |
33 | | -import net.dv8tion.jda.api.events.guild.scheduledevent.update.GenericScheduledEventUpdateEvent; |
34 | | -import net.dv8tion.jda.api.events.guild.voice.GenericGuildVoiceEvent; |
| 24 | +import net.dv8tion.jda.api.events.annotations.RequiredIntents; |
35 | 25 | import net.dv8tion.jda.api.events.message.GenericMessageEvent; |
36 | | -import net.dv8tion.jda.api.events.message.MessageBulkDeleteEvent; |
37 | | -import net.dv8tion.jda.api.events.message.react.GenericMessageReactionEvent; |
38 | | -import net.dv8tion.jda.api.events.sticker.GenericGuildStickerEvent; |
39 | | -import net.dv8tion.jda.api.events.user.UserTypingEvent; |
40 | | -import net.dv8tion.jda.api.events.user.update.GenericUserPresenceEvent; |
41 | | -import net.dv8tion.jda.api.events.user.update.GenericUserUpdateEvent; |
42 | 26 | import net.dv8tion.jda.api.utils.cache.CacheFlag; |
43 | 27 | import net.dv8tion.jda.internal.utils.Checks; |
44 | 28 |
|
@@ -405,44 +389,15 @@ public static EnumSet<GatewayIntent> fromEvents(@Nonnull Class<? extends Generic |
405 | 389 | @Nonnull |
406 | 390 | public static EnumSet<GatewayIntent> fromEvents(@Nonnull Collection<Class<? extends GenericEvent>> events) |
407 | 391 | { |
| 392 | + Checks.noneNull(events, "Events"); |
408 | 393 | EnumSet<GatewayIntent> intents = EnumSet.noneOf(GatewayIntent.class); |
409 | 394 | for (Class<? extends GenericEvent> event : events) |
410 | 395 | { |
411 | | - Checks.notNull(event, "Event"); |
412 | | - |
413 | | - if (GenericUserPresenceEvent.class.isAssignableFrom(event)) |
414 | | - intents.add(GUILD_PRESENCES); |
415 | | - else if (GenericUserUpdateEvent.class.isAssignableFrom(event) || GenericGuildMemberEvent.class.isAssignableFrom(event) || GuildMemberRemoveEvent.class.isAssignableFrom(event)) |
416 | | - intents.add(GUILD_MEMBERS); |
417 | | - |
418 | | - else if (GuildBanEvent.class.isAssignableFrom(event) || GuildUnbanEvent.class.isAssignableFrom(event) || GuildAuditLogEntryCreateEvent.class.isAssignableFrom(event)) |
419 | | - intents.add(GUILD_MODERATION); |
420 | | - else if (GenericEmojiEvent.class.isAssignableFrom(event) || GenericGuildStickerEvent.class.isAssignableFrom(event)) |
421 | | - intents.add(GUILD_EXPRESSIONS); |
422 | | - else if (GenericScheduledEventUpdateEvent.class.isAssignableFrom(event)) |
423 | | - intents.add(SCHEDULED_EVENTS); |
424 | | - else if (GenericGuildInviteEvent.class.isAssignableFrom(event)) |
425 | | - intents.add(GUILD_INVITES); |
426 | | - else if (GenericGuildVoiceEvent.class.isAssignableFrom(event)) |
427 | | - intents.add(GUILD_VOICE_STATES); |
428 | | - |
429 | | - else if (MessageBulkDeleteEvent.class.isAssignableFrom(event)) |
430 | | - intents.add(GUILD_MESSAGES); |
431 | | - |
432 | | - else if (GenericMessageReactionEvent.class.isAssignableFrom(event)) |
433 | | - Collections.addAll(intents, GUILD_MESSAGE_REACTIONS, DIRECT_MESSAGE_REACTIONS); |
434 | | - |
435 | | - else if (GenericMessageEvent.class.isAssignableFrom(event)) |
436 | | - Collections.addAll(intents, GUILD_MESSAGES, DIRECT_MESSAGES); |
437 | | - |
438 | | - else if (UserTypingEvent.class.isAssignableFrom(event)) |
439 | | - Collections.addAll(intents, GUILD_MESSAGE_TYPING, DIRECT_MESSAGE_TYPING); |
440 | | - |
441 | | - else if (AutoModExecutionEvent.class.isAssignableFrom(event)) |
442 | | - intents.add(AUTO_MODERATION_EXECUTION); |
443 | | - else if (GenericAutoModRuleEvent.class.isAssignableFrom(event)) |
444 | | - intents.add(AUTO_MODERATION_CONFIGURATION); |
| 396 | + final RequiredIntents requiredIntents = event.getDeclaredAnnotation(RequiredIntents.class); |
| 397 | + if (requiredIntents != null) |
| 398 | + Collections.addAll(intents, requiredIntents.always()); |
445 | 399 | } |
| 400 | + |
446 | 401 | return intents; |
447 | 402 | } |
448 | 403 |
|
|
0 commit comments