|
51 | 51 | from .channel import _channel_factory |
52 | 52 | from .emoji import AppEmoji, GuildEmoji |
53 | 53 | from .enums import ChannelType, InteractionType, ScheduledEventStatus, Status, try_enum |
54 | | -from .flags import ApplicationFlags, Intents, MemberCacheFlags |
| 54 | +from .flags import ApplicationFlags, GatewayCapabilities, Intents, MemberCacheFlags |
55 | 55 | from .guild import Guild |
56 | 56 | from .integrations import _integration_factory |
57 | 57 | from .interactions import Interaction |
@@ -248,6 +248,18 @@ def __init__( |
248 | 248 | self._status: str | None = status |
249 | 249 | self._intents: Intents = intents |
250 | 250 |
|
| 251 | + capabilities = options.get("capabilities") |
| 252 | + if capabilities is None: |
| 253 | + capabilities = GatewayCapabilities.none() |
| 254 | + elif isinstance(capabilities, int): |
| 255 | + capabilities = GatewayCapabilities._from_value(capabilities) |
| 256 | + elif not isinstance(capabilities, GatewayCapabilities): |
| 257 | + raise TypeError( |
| 258 | + "capabilities parameter must be GatewayCapabilities or int." |
| 259 | + ) |
| 260 | + |
| 261 | + self.capabilities: GatewayCapabilities = capabilities |
| 262 | + |
251 | 263 | if not intents.members or cache_flags._empty: |
252 | 264 | self.store_user = self.create_user # type: ignore |
253 | 265 | self.deref_user = self.deref_user_no_intents # type: ignore |
|
0 commit comments