@@ -31,6 +31,7 @@ public Task StartAsync(CancellationToken token)
3131 _bot . EventInvoker . RegisterEvent < LgrEvents . BotMessageEvent > ( HandleMessageEvent ) ;
3232 _bot . EventInvoker . RegisterEvent < LgrEvents . BotGroupNudgeEvent > ( HandleGroupNudgeEvent ) ;
3333 _bot . EventInvoker . RegisterEvent < LgrEvents . BotGroupMemberDecreaseEvent > ( HandleGroupMemberDecreaseEvent ) ;
34+ _bot . EventInvoker . RegisterEvent < LgrEvents . BotFriendRequestEvent > ( HandleFriendRequestEvent ) ;
3435
3536 return Task . CompletedTask ;
3637 }
@@ -149,6 +150,32 @@ private void HandleGroupMemberDecreaseEvent(BotContext bot, LgrEvents.BotGroupMe
149150 }
150151 }
151152
153+ private void HandleFriendRequestEvent ( BotContext bot , LgrEvents . BotFriendRequestEvent @event )
154+ {
155+ try
156+ {
157+ _logger . LogBotFriendRequestEvent (
158+ @event . InitiatorUid ,
159+ @event . InitiatorUin ,
160+ @event . Message ,
161+ @event . Source
162+ ) ;
163+ var result = _convert . FriendRequestEvent ( @event ) ;
164+ byte [ ] bytes = JsonUtility . SerializeToUtf8Bytes ( result . GetType ( ) , result ) ;
165+ using ( _lock . UsingReadLock ( ) )
166+ {
167+ foreach ( var handler in _handlers )
168+ {
169+ handler ( bytes ) ;
170+ }
171+ }
172+ }
173+ catch ( Exception e )
174+ {
175+ _logger . LogHandleEventException ( nameof ( LgrEvents . BotFriendRequestEvent ) , e ) ;
176+ }
177+ }
178+
152179 public Task StopAsync ( CancellationToken token )
153180 {
154181 // TODO: unregister
@@ -190,6 +217,9 @@ public static partial class EventServiceLoggerExtension
190217
191218 [ LoggerMessage ( EventId = 4 , Level = LogLevel . Debug , Message = "BotGroupMemberDecreaseEvent {{ group: {group}, user: {user}, operator: {operator} }}" ) ]
192219 public static partial void LogGroupMemberDecreaseEvent ( this ILogger < EventService > logger , long group , long user , long ? @operator ) ;
220+
221+ [ LoggerMessage ( EventId = 5 , Level = LogLevel . Debug , Message = "BotFriendRequestEvent {{ request: {request}, user: {user}, message: {message}, source: {source} }}" ) ]
222+ public static partial void LogBotFriendRequestEvent ( this ILogger < EventService > logger , string request , long user , string ? message , string ? source ) ;
193223
194224 [ LoggerMessage ( EventId = 999 , Level = LogLevel . Error , Message = "Handle {event} exception" ) ]
195225 public static partial void LogHandleEventException ( this ILogger < EventService > logger , string @event , Exception e ) ;
0 commit comments