@@ -31,26 +31,38 @@ public async ValueTask Incoming(ProtocolEvent e)
3131 case Type . GroupMemberDecreaseNotice when messageEvent . MsgPush . CommonMessage . MessageBody . MsgContent is { } content :
3232 {
3333 var decrease = ProtoHelper . Deserialize < GroupChange > ( content . Span ) ;
34- if ( decrease . DecreaseType == 3 )
34+ switch ( ( DecreaseType ) decrease . DecreaseType )
3535 {
36- var op = ProtoHelper . Deserialize < OperatorInfo > ( decrease . Operator . AsSpan ( ) ) ;
37- context . EventInvoker . PostEvent (
38- new BotGroupMemberDecreaseEvent (
36+ case DecreaseType . KickSelf :
37+ {
38+ var op = ProtoHelper . Deserialize < OperatorInfo > ( decrease . Operator . AsSpan ( ) ) ;
39+ context . EventInvoker . PostEvent ( new BotGroupMemberDecreaseEvent (
3940 decrease . GroupUin ,
4041 context . CacheContext . ResolveUin ( decrease . MemberUid ) ,
41- context . CacheContext . ResolveUin ( op . Operator . Uid ?? "" )
42- )
43- ) ;
44- }
45- else
46- {
47- context . EventInvoker . PostEvent (
48- new BotGroupMemberDecreaseEvent (
42+ op . Operator . Uid != null ? context . CacheContext . ResolveUin ( op . Operator . Uid ) : null
43+ ) ) ;
44+ break ;
45+ }
46+ case DecreaseType . Exit :
47+ {
48+ await context . CacheContext . GetMemberList ( decrease . GroupUin ) ;
49+ context . EventInvoker . PostEvent ( new BotGroupMemberDecreaseEvent (
4950 decrease . GroupUin ,
5051 context . CacheContext . ResolveUin ( decrease . MemberUid ) ,
51- context . CacheContext . ResolveUin ( Encoding . UTF8 . GetString ( decrease . Operator . AsSpan ( ) ) )
52- )
53- ) ;
52+ null
53+ ) ) ;
54+ break ;
55+ }
56+ case DecreaseType . Kick :
57+ {
58+ await context . CacheContext . GetMemberList ( decrease . GroupUin ) ;
59+ goto case DecreaseType . KickSelf ;
60+ }
61+ default :
62+ {
63+ context . LogWarning ( nameof ( PushLogic ) , "Unknown decrease type: {0}" , null , decrease . DecreaseType ) ;
64+ break ;
65+ }
5466 }
5567 break ;
5668 }
@@ -80,12 +92,12 @@ public async ValueTask Incoming(ProtocolEvent e)
8092 }
8193 case Type . Event0x20D when messageEvent . MsgPush . CommonMessage . MessageBody . MsgContent is { } content :
8294 {
83- var decrease = ProtoHelper . Deserialize < Event0x20D > ( content . Span ) ;
84- switch ( ( Event0x20DSubType ) decrease . SubType )
95+ var @event = ProtoHelper . Deserialize < Event0x20D > ( content . Span ) ;
96+ switch ( ( Event0x20DSubType ) @event . SubType )
8597 {
8698 case Event0x20DSubType . GroupInviteNotification :
8799 {
88- var body = ProtoHelper . Deserialize < GroupInvite > ( decrease . Body ) ;
100+ var body = ProtoHelper . Deserialize < GroupInvite > ( @event . Body ) ;
89101
90102 var response = await context . EventContext . SendEvent < FetchGroupNotificationsEventResp > (
91103 new FetchGroupNotificationsEventReq ( 20 )
@@ -108,6 +120,11 @@ public async ValueTask Incoming(ProtocolEvent e)
108120 context . EventInvoker . PostEvent ( new BotGroupInviteNotificationEvent ( notification ) ) ;
109121 break ;
110122 }
123+ default :
124+ {
125+ context . LogWarning ( nameof ( PushLogic ) , "Unknown 0x20D sub type: {0}" , null , @event . SubType ) ;
126+ break ;
127+ }
111128 }
112129 break ;
113130 }
@@ -117,6 +134,7 @@ public async ValueTask Incoming(ProtocolEvent e)
117134 switch ( pkgType )
118135 {
119136 case Event0x2DCSubType . GroupGreyTipNotice20 when messageEvent . MsgPush . CommonMessage . MessageBody . MsgContent is { } content :
137+ {
120138 var packet = new BinaryPacket ( content ) ;
121139 Int64 groupUin = packet . Read < Int32 > ( ) ; // group uin
122140 _ = packet . Read < byte > ( ) ; // unknown byte
@@ -138,10 +156,20 @@ public async ValueTask Incoming(ProtocolEvent e)
138156 ) ;
139157 }
140158 break ;
159+ }
160+ default :
161+ {
162+ context . LogWarning ( nameof ( PushLogic ) , "Unknown 0x2DC sub type: {0}" , null , pkgType ) ;
163+ break ;
164+ }
141165 }
142166 break ;
143167 }
144- default : break ;
168+ default :
169+ {
170+ context . LogWarning ( nameof ( PushLogic ) , "Unknown push msg type: {0}" , null , messageEvent . MsgPush . CommonMessage . ContentHead . Type ) ;
171+ break ;
172+ }
145173 }
146174 }
147175
@@ -157,6 +185,13 @@ private enum Type
157185 Event0x2DC = 732 , // group related event
158186 }
159187
188+ private enum DecreaseType
189+ {
190+ KickSelf = 3 ,
191+ Exit = 130 ,
192+ Kick = 131
193+ }
194+
160195 private enum Event0x20DSubType
161196 {
162197 GroupInviteNotification = 87
0 commit comments