@@ -31,26 +31,38 @@ public async ValueTask Incoming(ProtocolEvent e)
31
31
case Type . GroupMemberDecreaseNotice when messageEvent . MsgPush . CommonMessage . MessageBody . MsgContent is { } content :
32
32
{
33
33
var decrease = ProtoHelper . Deserialize < GroupChange > ( content . Span ) ;
34
- if ( decrease . DecreaseType == 3 )
34
+ switch ( ( DecreaseType ) decrease . DecreaseType )
35
35
{
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 (
39
40
decrease . GroupUin ,
40
41
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 (
49
50
decrease . GroupUin ,
50
51
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
+ }
54
66
}
55
67
break ;
56
68
}
@@ -80,12 +92,12 @@ public async ValueTask Incoming(ProtocolEvent e)
80
92
}
81
93
case Type . Event0x20D when messageEvent . MsgPush . CommonMessage . MessageBody . MsgContent is { } content :
82
94
{
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 )
85
97
{
86
98
case Event0x20DSubType . GroupInviteNotification :
87
99
{
88
- var body = ProtoHelper . Deserialize < GroupInvite > ( decrease . Body ) ;
100
+ var body = ProtoHelper . Deserialize < GroupInvite > ( @event . Body ) ;
89
101
90
102
var response = await context . EventContext . SendEvent < FetchGroupNotificationsEventResp > (
91
103
new FetchGroupNotificationsEventReq ( 20 )
@@ -108,6 +120,11 @@ public async ValueTask Incoming(ProtocolEvent e)
108
120
context . EventInvoker . PostEvent ( new BotGroupInviteNotificationEvent ( notification ) ) ;
109
121
break ;
110
122
}
123
+ default :
124
+ {
125
+ context . LogWarning ( nameof ( PushLogic ) , "Unknown 0x20D sub type: {0}" , null , @event . SubType ) ;
126
+ break ;
127
+ }
111
128
}
112
129
break ;
113
130
}
@@ -117,6 +134,7 @@ public async ValueTask Incoming(ProtocolEvent e)
117
134
switch ( pkgType )
118
135
{
119
136
case Event0x2DCSubType . GroupGreyTipNotice20 when messageEvent . MsgPush . CommonMessage . MessageBody . MsgContent is { } content :
137
+ {
120
138
var packet = new BinaryPacket ( content ) ;
121
139
Int64 groupUin = packet . Read < Int32 > ( ) ; // group uin
122
140
_ = packet . Read < byte > ( ) ; // unknown byte
@@ -138,10 +156,20 @@ public async ValueTask Incoming(ProtocolEvent e)
138
156
) ;
139
157
}
140
158
break ;
159
+ }
160
+ default :
161
+ {
162
+ context . LogWarning ( nameof ( PushLogic ) , "Unknown 0x2DC sub type: {0}" , null , pkgType ) ;
163
+ break ;
164
+ }
141
165
}
142
166
break ;
143
167
}
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
+ }
145
173
}
146
174
}
147
175
@@ -157,6 +185,13 @@ private enum Type
157
185
Event0x2DC = 732 , // group related event
158
186
}
159
187
188
+ private enum DecreaseType
189
+ {
190
+ KickSelf = 3 ,
191
+ Exit = 130 ,
192
+ Kick = 131
193
+ }
194
+
160
195
private enum Event0x20DSubType
161
196
{
162
197
GroupInviteNotification = 87
0 commit comments