aboutsummaryrefslogtreecommitdiff
path: root/discord/flags.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2020-09-15 01:59:51 -0400
committerRapptz <[email protected]>2020-09-23 03:21:21 -0400
commit8d5c05ed20af0598750d61c5b9c62f4d37e4aeb1 (patch)
tree01f4ef33986df7c47d7676b111164f63a7e2a347 /discord/flags.py
parentAdd a special exception for required privileged intents (diff)
downloaddiscord.py-8d5c05ed20af0598750d61c5b9c62f4d37e4aeb1.tar.xz
discord.py-8d5c05ed20af0598750d61c5b9c62f4d37e4aeb1.zip
Default MemberCacheFlags based on intents
Diffstat (limited to 'discord/flags.py')
-rw-r--r--discord/flags.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/discord/flags.py b/discord/flags.py
index a204937c..4607b2ce 100644
--- a/discord/flags.py
+++ b/discord/flags.py
@@ -754,6 +754,32 @@ class MemberCacheFlags(BaseFlags):
"""
return 4
+ @classmethod
+ def from_intents(cls, intents):
+ """A factory method that creates a :class:`MemberCacheFlags` based on
+ the currently selected :class:`Intents`.
+
+ Parameters
+ ------------
+ intents: :class:`Intents`
+ The intents to select from.
+
+ Returns
+ ---------
+ :class:`MemberCacheFlags`
+ The resulting member cache flags.
+ """
+
+ self = cls.none()
+ if intents.members:
+ self.joined = True
+ if intents.presences:
+ self.online = True
+ if intents.voice_states:
+ self.voice = True
+
+ return self
+
def _verify_intents(self, intents):
if self.online and not intents.presences:
raise ValueError('MemberCacheFlags.online requires Intents.presences enabled')