44
44
from .flags import ChannelFlags , MessageFlags
45
45
from .iterators import ArchivedThreadIterator
46
46
from .mixins import Hashable
47
+ from .object import Object
47
48
from .partial_emoji import PartialEmoji
48
49
from .permissions import PermissionOverwrite , Permissions
49
50
from .soundboard import GuildSoundboardSound , PartialSoundboardSound , SoundboardSound
@@ -341,6 +342,8 @@ def permissions_for(
341
342
@property
342
343
def members (self ) -> List [Member ]:
343
344
"""List[:class:`Member`]: Returns all members that can see this channel."""
345
+ if isinstance (self .guild , Object ):
346
+ return []
344
347
return [m for m in self .guild .members if self .permissions_for (m ).view_channel ]
345
348
346
349
@property
@@ -349,6 +352,8 @@ def threads(self) -> List[Thread]:
349
352
350
353
.. versionadded:: 2.0
351
354
"""
355
+ if isinstance (self .guild , Object ):
356
+ return []
352
357
return [thread for thread in self .guild ._threads .values () if thread .parent_id == self .id ]
353
358
354
359
def is_nsfw (self ) -> bool :
@@ -981,6 +986,8 @@ def get_thread(self, thread_id: int, /) -> Optional[Thread]:
981
986
Optional[:class:`Thread`]
982
987
The returned thread or ``None`` if not found.
983
988
"""
989
+ if isinstance (self .guild , Object ):
990
+ return None
984
991
return self .guild .get_thread (thread_id )
985
992
986
993
@overload
@@ -1222,6 +1229,9 @@ def _sorting_bucket(self) -> int:
1222
1229
@property
1223
1230
def members (self ) -> List [Member ]:
1224
1231
"""List[:class:`Member`]: Returns all members that are currently inside this voice channel."""
1232
+ if isinstance (self .guild , Object ):
1233
+ return []
1234
+
1225
1235
ret = []
1226
1236
for user_id , state in self .guild ._voice_states .items ():
1227
1237
if state .channel and state .channel .id == self .id :
@@ -1246,6 +1256,9 @@ def voice_states(self) -> Dict[int, VoiceState]:
1246
1256
Mapping[:class:`int`, :class:`VoiceState`]
1247
1257
The mapping of member ID to a voice state.
1248
1258
"""
1259
+ if isinstance (self .guild , Object ):
1260
+ return {}
1261
+
1249
1262
return {
1250
1263
key : value
1251
1264
for key , value in self .guild ._voice_states .items ()
@@ -2285,6 +2298,8 @@ def instance(self) -> Optional[StageInstance]:
2285
2298
2286
2299
.. versionadded:: 2.0
2287
2300
"""
2301
+ if isinstance (self .guild , Object ):
2302
+ return None
2288
2303
return utils .get (self .guild .stage_instances , channel_id = self .id )
2289
2304
2290
2305
async def create_instance (
@@ -3107,6 +3122,8 @@ def channels(self) -> List[GuildChannelType]:
3107
3122
3108
3123
These are sorted by the official Discord UI, which places voice channels below the text channels.
3109
3124
"""
3125
+ if isinstance (self .guild , Object ):
3126
+ return []
3110
3127
3111
3128
def comparator (channel ):
3112
3129
return (
@@ -3121,6 +3138,9 @@ def comparator(channel):
3121
3138
@property
3122
3139
def text_channels (self ) -> List [TextChannel ]:
3123
3140
"""List[:class:`TextChannel`]: Returns the text channels that are under this category."""
3141
+ if isinstance (self .guild , Object ):
3142
+ return []
3143
+
3124
3144
ret = [
3125
3145
c
3126
3146
for c in self .guild .channels
@@ -3132,6 +3152,9 @@ def text_channels(self) -> List[TextChannel]:
3132
3152
@property
3133
3153
def voice_channels (self ) -> List [VoiceChannel ]:
3134
3154
"""List[:class:`VoiceChannel`]: Returns the voice channels that are under this category."""
3155
+ if isinstance (self .guild , Object ):
3156
+ return []
3157
+
3135
3158
ret = [
3136
3159
c
3137
3160
for c in self .guild .channels
@@ -3146,6 +3169,9 @@ def stage_channels(self) -> List[StageChannel]:
3146
3169
3147
3170
.. versionadded:: 1.7
3148
3171
"""
3172
+ if isinstance (self .guild , Object ):
3173
+ return []
3174
+
3149
3175
ret = [
3150
3176
c
3151
3177
for c in self .guild .channels
@@ -3160,6 +3186,9 @@ def forum_channels(self) -> List[ForumChannel]:
3160
3186
3161
3187
.. versionadded:: 2.5
3162
3188
"""
3189
+ if isinstance (self .guild , Object ):
3190
+ return []
3191
+
3163
3192
ret = [
3164
3193
c
3165
3194
for c in self .guild .channels
@@ -3174,6 +3203,9 @@ def media_channels(self) -> List[MediaChannel]:
3174
3203
3175
3204
.. versionadded:: 2.10
3176
3205
"""
3206
+ if isinstance (self .guild , Object ):
3207
+ return []
3208
+
3177
3209
ret = [
3178
3210
c
3179
3211
for c in self .guild .channels
@@ -3385,11 +3417,15 @@ def permissions_for(
3385
3417
@property
3386
3418
def members (self ) -> List [Member ]:
3387
3419
"""List[:class:`Member`]: Returns all members that can see this channel."""
3420
+ if isinstance (self .guild , Object ):
3421
+ return []
3388
3422
return [m for m in self .guild .members if self .permissions_for (m ).view_channel ]
3389
3423
3390
3424
@property
3391
3425
def threads (self ) -> List [Thread ]:
3392
3426
"""List[:class:`Thread`]: Returns all the threads that you can see."""
3427
+ if isinstance (self .guild , Object ):
3428
+ return []
3393
3429
return [thread for thread in self .guild ._threads .values () if thread .parent_id == self .id ]
3394
3430
3395
3431
def is_nsfw (self ) -> bool :
@@ -3483,6 +3519,8 @@ def get_thread(self, thread_id: int, /) -> Optional[Thread]:
3483
3519
Optional[:class:`Thread`]
3484
3520
The returned thread of ``None`` if not found.
3485
3521
"""
3522
+ if isinstance (self .guild , Object ):
3523
+ return None
3486
3524
return self .guild .get_thread (thread_id )
3487
3525
3488
3526
@overload
0 commit comments