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