1717from ._const import UNIX_EPOCH
1818from .abc import Channel , Message , PartialUser
1919from .app import PartialApp
20- from .enums import ChatMemberRank , Type
20+ from .enums import ChatMemberJoinState , ChatMemberRank , Type
2121from .errors import WSException
2222from .id import _ID64_TO_ID32 , ID
2323from .models import Avatar
@@ -57,6 +57,7 @@ class _PartialMemberProto(
5757 "clan" ,
5858 "group" ,
5959 "rank" ,
60+ "join_state" ,
6061 "kick_expires_at" ,
6162 "_role_ids" ,
6263 "_state" ,
@@ -66,13 +67,15 @@ class _PartialMemberProto(
6667
6768 _state : ConnectionState
6869 rank : ChatMemberRank
70+ join_state : ChatMemberJoinState
6971 _role_ids : tuple [RoleID , ...]
7072 kick_expires_at : datetime
7173 clan : Clan | None
7274 group : Group | None
7375
7476 def _update (self , member : chat .Member , / ) -> None :
7577 self .rank = ChatMemberRank .try_value (member .rank )
78+ self .join_state = ChatMemberJoinState .try_value (member .state )
7679 self ._role_ids = cast ("tuple[RoleID, ...]" , tuple (member .role_ids ))
7780 self .kick_expires_at = DateTime .from_timestamp (member .time_kick_expire )
7881
@@ -146,7 +149,7 @@ def copy(self) -> Self:
146149 self .group ,
147150 chat .Member (
148151 self .id ,
149- chat . EChatRoomJoinState . Joined ,
152+ self . join_state , # type: ignore
150153 self .rank , # type: ignore
151154 int (self .kick_expires_at .timestamp ()),
152155 list (self ._role_ids ),
0 commit comments