def test_requires_intents(): assert list(base_events.get_required_intents_for(DummyGuildEvent)) == [ intents.Intents.GUILDS ] assert list(base_events.get_required_intents_for(DummyPresenceEvent)) == [ intents.Intents.GUILD_PRESENCES ] assert list(base_events.get_required_intents_for(ErrorEvent)) == []
def test_inherited_requires_intents(): assert list( base_events.get_required_intents_for(DummyPresenceDerivedEvent)) == [ intents.Intents.GUILD_PRESENCES ] assert list( base_events.get_required_intents_for(DummyGuildDerivedEvent)) == [ intents.Intents.GUILDS ]
def _check_intents(self, event_type: typing.Type[event_dispatcher.EventT_co], nested: int) -> None: # If None, the user is on v6 with intents disabled, so we don't care. if self._intents is not None: # Collection of combined bitfield combinations of intents that # could be enabled to receive this event. expected_intent_groups = base_events.get_required_intents_for( event_type) if expected_intent_groups: for expected_intent_group in expected_intent_groups: if (self._intents & expected_intent_group) == expected_intent_group: break else: expected_intents_str = ", ".join( map(str, expected_intent_groups)) warnings.warn( f"You have tried to listen to {event_type.__name__}, but this will only ever be triggered if " f"you enable one of the following intents: {expected_intents_str}.", category=errors.MissingIntentWarning, stacklevel=nested + 3, )
def _check_event(self, event_type: typing.Type[typing.Any], nested: int) -> None: try: is_event = issubclass(event_type, base_events.Event) except TypeError: is_event = False if not is_event: raise TypeError("'event_type' is a non-Event type") # Collection of combined bitfield combinations of intents that # could be enabled to receive this event. expected_intent_groups = base_events.get_required_intents_for(event_type) if expected_intent_groups: for expected_intent_group in expected_intent_groups: if (self._intents & expected_intent_group) == expected_intent_group: break else: expected_intents_str = ", ".join(map(str, expected_intent_groups)) warnings.warn( f"You have tried to listen to {event_type.__name__}, but this will only ever be triggered if " f"you enable one of the following intents: {expected_intents_str}.", category=errors.MissingIntentWarning, stacklevel=nested + 3, )