@@ -126,9 +126,9 @@ async def add_members(self, members: list[Member]) -> None:
126126 return
127127
128128 for member in members :
129- existing = guild .get_member (member .id )
129+ existing = await guild .get_member (member .id )
130130 if existing is None or existing .joined_at is None :
131- guild ._add_member (member )
131+ await guild ._add_member (member )
132132
133133 async def wait (self ) -> list [Member ]:
134134 future = self .loop .create_future ()
@@ -524,174 +524,6 @@ async def query_members(
524524 )
525525 raise
526526
527- def parse_presence_update (self , data ) -> None :
528- guild_id = utils ._get_as_snowflake (data , "guild_id" )
529- # guild_id won't be None here
530- guild = self ._get_guild (guild_id )
531- if guild is None :
532- _log .debug (
533- "PRESENCE_UPDATE referencing an unknown guild ID: %s. Discarding." ,
534- guild_id ,
535- )
536- return
537-
538- user = data ["user" ]
539- member_id = int (user ["id" ])
540- member = guild .get_member (member_id )
541- if member is None :
542- _log .debug (
543- "PRESENCE_UPDATE referencing an unknown member ID: %s. Discarding" ,
544- member_id ,
545- )
546- return
547-
548- old_member = Member ._copy (member )
549- user_update = member ._presence_update (data = data , user = user )
550- if user_update :
551- self .dispatch ("user_update" , user_update [0 ], user_update [1 ])
552-
553- self .dispatch ("presence_update" , old_member , member )
554-
555- def parse_user_update (self , data ) -> None :
556- # self.user is *always* cached when this is called
557- user : ClientUser = self .user # type: ignore
558- user ._update (data )
559- ref = self ._users .get (user .id )
560- if ref :
561- ref ._update (data )
562-
563- def parse_invite_create (self , data ) -> None :
564- invite = Invite .from_gateway (state = self , data = data )
565- self .dispatch ("invite_create" , invite )
566-
567- def parse_invite_delete (self , data ) -> None :
568- invite = Invite .from_gateway (state = self , data = data )
569- self .dispatch ("invite_delete" , invite )
570-
571- def parse_channel_delete (self , data ) -> None :
572- guild = self ._get_guild (utils ._get_as_snowflake (data , "guild_id" ))
573- channel_id = int (data ["id" ])
574- if guild is not None :
575- channel = guild .get_channel (channel_id )
576- if channel is not None :
577- guild ._remove_channel (channel )
578- self .dispatch ("guild_channel_delete" , channel )
579-
580- def parse_channel_update (self , data ) -> None :
581- channel_type = try_enum (ChannelType , data .get ("type" ))
582- channel_id = int (data ["id" ])
583- if channel_type is ChannelType .group :
584- channel = self ._get_private_channel (channel_id )
585- old_channel = copy .copy (channel )
586- # the channel is a GroupChannel
587- channel ._update_group (data ) # type: ignore
588- self .dispatch ("private_channel_update" , old_channel , channel )
589- return
590-
591- guild_id = utils ._get_as_snowflake (data , "guild_id" )
592- guild = self ._get_guild (guild_id )
593- if guild is not None :
594- channel = guild .get_channel (channel_id )
595- if channel is not None :
596- old_channel = copy .copy (channel )
597- channel ._update (guild , data )
598- self .dispatch ("guild_channel_update" , old_channel , channel )
599- else :
600- _log .debug (
601- "CHANNEL_UPDATE referencing an unknown channel ID: %s. Discarding." ,
602- channel_id ,
603- )
604- else :
605- _log .debug (
606- "CHANNEL_UPDATE referencing an unknown guild ID: %s. Discarding." ,
607- guild_id ,
608- )
609-
610- def parse_channel_create (self , data ) -> None :
611- factory , ch_type = _channel_factory (data ["type" ])
612- if factory is None :
613- _log .debug (
614- "CHANNEL_CREATE referencing an unknown channel type %s. Discarding." ,
615- data ["type" ],
616- )
617- return
618-
619- guild_id = utils ._get_as_snowflake (data , "guild_id" )
620- guild = self ._get_guild (guild_id )
621- if guild is not None :
622- # the factory can't be a DMChannel or GroupChannel here
623- channel = factory (guild = guild , state = self , data = data ) # type: ignore
624- guild ._add_channel (channel ) # type: ignore
625- self .dispatch ("guild_channel_create" , channel )
626- else :
627- _log .debug (
628- "CHANNEL_CREATE referencing an unknown guild ID: %s. Discarding." ,
629- guild_id ,
630- )
631- return
632-
633- def parse_channel_pins_update (self , data ) -> None :
634- channel_id = int (data ["channel_id" ])
635- try :
636- guild = self ._get_guild (int (data ["guild_id" ]))
637- except KeyError :
638- guild = None
639- channel = self ._get_private_channel (channel_id )
640- else :
641- channel = guild and guild ._resolve_channel (channel_id )
642-
643- if channel is None :
644- _log .debug (
645- (
646- "CHANNEL_PINS_UPDATE referencing an unknown channel ID: %s."
647- " Discarding."
648- ),
649- channel_id ,
650- )
651- return
652-
653- last_pin = (
654- utils .parse_time (data ["last_pin_timestamp" ])
655- if data ["last_pin_timestamp" ]
656- else None
657- )
658-
659- if guild is None :
660- self .dispatch ("private_channel_pins_update" , channel , last_pin )
661- else :
662- self .dispatch ("guild_channel_pins_update" , channel , last_pin )
663-
664- def parse_thread_create (self , data ) -> None :
665- guild_id = int (data ["guild_id" ])
666- guild : Guild | None = self ._get_guild (guild_id )
667- if guild is None :
668- _log .debug (
669- "THREAD_CREATE referencing an unknown guild ID: %s. Discarding" ,
670- guild_id ,
671- )
672- return
673-
674- cached_thread = guild .get_thread (int (data ["id" ]))
675- if not cached_thread :
676- thread = Thread (guild = guild , state = guild ._state , data = data )
677- guild ._add_thread (thread )
678- if data .get ("newly_created" ):
679- thread ._add_member (
680- ThreadMember (
681- thread ,
682- {
683- "id" : thread .id ,
684- "user_id" : data ["owner_id" ],
685- "join_timestamp" : data ["thread_metadata" ][
686- "create_timestamp"
687- ],
688- "flags" : utils .MISSING ,
689- },
690- )
691- )
692- self .dispatch ("thread_create" , thread )
693- else :
694- self .dispatch ("thread_join" , cached_thread )
695527
696528 def parse_thread_update (self , data ) -> None :
697529 guild_id = int (data ["guild_id" ])
@@ -1541,7 +1373,7 @@ async def _get_reaction_user(
15411373 self , channel : MessageableChannel , user_id : int
15421374 ) -> User | Member | None :
15431375 if isinstance (channel , TextChannel ):
1544- return channel .guild .get_member (user_id )
1376+ return await channel .guild .get_member (user_id )
15451377 return await self .get_user (user_id )
15461378
15471379 async def get_reaction_emoji (self , data ) -> GuildEmoji | AppEmoji | PartialEmoji :
0 commit comments