@@ -135,9 +135,50 @@ async def get_context(
135
135
ctx .load_translations ()
136
136
return ctx
137
137
138
+ @property
139
+ @override
140
+ def intents (self ) -> discord .Intents :
141
+ """The intents configured for this connection or a copy of the intents if the bot is connected.
142
+
143
+ Returns
144
+ -------
145
+ :class:`Intents`
146
+ The intents configured for this Client.
147
+
148
+ """
149
+ # _connection._intents returns the intents themselves, _connection.intents returns a copy
150
+ # so if the bot is connected, we return a copy so that changes don't affect the connection
151
+ # if the bot is not connected, we return the actual intents so that the user can make changes
152
+ if self .ws is None : # pyright: ignore [reportUnnecessaryComparison]
153
+ return self ._connection ._intents # noqa: SLF001 # pyright: ignore [reportPrivateUsage]
154
+ return self ._connection .intents
155
+
156
+ @intents .setter
157
+ def intents (self , value : Any ) -> None : # pyright: ignore [reportExplicitAny]
158
+ """Set the intents for this Client.
159
+
160
+ Parameters
161
+ ----------
162
+ value: :class:`Intents`
163
+ The intents to set for this Client.
164
+
165
+ Raises
166
+ ------
167
+ TypeError
168
+ The value is not an instance of Intents.
169
+ AttributeError
170
+ The intents cannot be changed after the connection is established.
171
+
172
+ """
173
+ if not isinstance (value , discord .Intents ):
174
+ raise TypeError (f"Intents must be an instance of Intents not { value .__class__ !r} " )
175
+ if self .ws is not None : # pyright: ignore [reportUnnecessaryComparison]
176
+ raise AttributeError ("Cannot change intents after the connection is established." )
177
+ self ._connection ._intents .value = value .value # noqa: SLF001 # pyright: ignore [reportPrivateUsage]
178
+
138
179
139
180
if not TYPE_CHECKING :
140
- Context : ApplicationContext = ApplicationContext # pyright: ignore [reportRedeclaration]
181
+ Context : ApplicationContext = ApplicationContext
141
182
142
183
if TYPE_CHECKING : # temp fix for https://github.com/Pycord-Development/pycord/pull/2611
143
184
type Context = ExtContext | ApplicationContext
0 commit comments