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 :
@@ -978,6 +983,8 @@ def get_thread(self, thread_id: int, /) -> Optional[Thread]:
978
983
Optional[:class:`Thread`]
979
984
The returned thread or ``None`` if not found.
980
985
"""
986
+ if isinstance (self .guild , Object ):
987
+ return None
981
988
return self .guild .get_thread (thread_id )
982
989
983
990
@overload
@@ -1217,6 +1224,9 @@ def _sorting_bucket(self) -> int:
1217
1224
@property
1218
1225
def members (self ) -> List [Member ]:
1219
1226
"""List[:class:`Member`]: Returns all members that are currently inside this voice channel."""
1227
+ if isinstance (self .guild , Object ):
1228
+ return []
1229
+
1220
1230
ret = []
1221
1231
for user_id , state in self .guild ._voice_states .items ():
1222
1232
if state .channel and state .channel .id == self .id :
@@ -1241,6 +1251,9 @@ def voice_states(self) -> Dict[int, VoiceState]:
1241
1251
Mapping[:class:`int`, :class:`VoiceState`]
1242
1252
The mapping of member ID to a voice state.
1243
1253
"""
1254
+ if isinstance (self .guild , Object ):
1255
+ return {}
1256
+
1244
1257
return {
1245
1258
key : value
1246
1259
for key , value in self .guild ._voice_states .items ()
@@ -2277,6 +2290,8 @@ def instance(self) -> Optional[StageInstance]:
2277
2290
2278
2291
.. versionadded:: 2.0
2279
2292
"""
2293
+ if isinstance (self .guild , Object ):
2294
+ return None
2280
2295
return utils .get (self .guild .stage_instances , channel_id = self .id )
2281
2296
2282
2297
async def create_instance (
@@ -3090,6 +3105,8 @@ def channels(self) -> List[GuildChannelType]:
3090
3105
3091
3106
These are sorted by the official Discord UI, which places voice channels below the text channels.
3092
3107
"""
3108
+ if isinstance (self .guild , Object ):
3109
+ return []
3093
3110
3094
3111
def comparator (channel ):
3095
3112
return (
@@ -3104,6 +3121,9 @@ def comparator(channel):
3104
3121
@property
3105
3122
def text_channels (self ) -> List [TextChannel ]:
3106
3123
"""List[:class:`TextChannel`]: Returns the text channels that are under this category."""
3124
+ if isinstance (self .guild , Object ):
3125
+ return []
3126
+
3107
3127
ret = [
3108
3128
c
3109
3129
for c in self .guild .channels
@@ -3115,6 +3135,9 @@ def text_channels(self) -> List[TextChannel]:
3115
3135
@property
3116
3136
def voice_channels (self ) -> List [VoiceChannel ]:
3117
3137
"""List[:class:`VoiceChannel`]: Returns the voice channels that are under this category."""
3138
+ if isinstance (self .guild , Object ):
3139
+ return []
3140
+
3118
3141
ret = [
3119
3142
c
3120
3143
for c in self .guild .channels
@@ -3129,6 +3152,9 @@ def stage_channels(self) -> List[StageChannel]:
3129
3152
3130
3153
.. versionadded:: 1.7
3131
3154
"""
3155
+ if isinstance (self .guild , Object ):
3156
+ return []
3157
+
3132
3158
ret = [
3133
3159
c
3134
3160
for c in self .guild .channels
@@ -3143,6 +3169,9 @@ def forum_channels(self) -> List[ForumChannel]:
3143
3169
3144
3170
.. versionadded:: 2.5
3145
3171
"""
3172
+ if isinstance (self .guild , Object ):
3173
+ return []
3174
+
3146
3175
ret = [
3147
3176
c
3148
3177
for c in self .guild .channels
@@ -3157,6 +3186,9 @@ def media_channels(self) -> List[MediaChannel]:
3157
3186
3158
3187
.. versionadded:: 2.10
3159
3188
"""
3189
+ if isinstance (self .guild , Object ):
3190
+ return []
3191
+
3160
3192
ret = [
3161
3193
c
3162
3194
for c in self .guild .channels
@@ -3368,11 +3400,15 @@ def permissions_for(
3368
3400
@property
3369
3401
def members (self ) -> List [Member ]:
3370
3402
"""List[:class:`Member`]: Returns all members that can see this channel."""
3403
+ if isinstance (self .guild , Object ):
3404
+ return []
3371
3405
return [m for m in self .guild .members if self .permissions_for (m ).view_channel ]
3372
3406
3373
3407
@property
3374
3408
def threads (self ) -> List [Thread ]:
3375
3409
"""List[:class:`Thread`]: Returns all the threads that you can see."""
3410
+ if isinstance (self .guild , Object ):
3411
+ return []
3376
3412
return [thread for thread in self .guild ._threads .values () if thread .parent_id == self .id ]
3377
3413
3378
3414
def is_nsfw (self ) -> bool :
@@ -3466,6 +3502,8 @@ def get_thread(self, thread_id: int, /) -> Optional[Thread]:
3466
3502
Optional[:class:`Thread`]
3467
3503
The returned thread of ``None`` if not found.
3468
3504
"""
3505
+ if isinstance (self .guild , Object ):
3506
+ return None
3469
3507
return self .guild .get_thread (thread_id )
3470
3508
3471
3509
@overload
0 commit comments