@@ -529,40 +529,45 @@ public static void CacheUsername(Message message)
529
529
530
530
public static void UserLeftAction ( Message message )
531
531
{
532
- if ( Utils . BotTools . IsUserOperator ( message . LeftChatMember . Id ) )
532
+ if ( message . LeftChatMember == null ) return ;
533
+ ChatTools . RemoveChatAdmin ( message . Chat . Id , message . LeftChatMember . Id ) ;
534
+ if ( ! BotTools . IsUserOperator ( message . LeftChatMember . Id ) ) return ;
535
+ if ( CacheData . ActiveSupport
536
+ . Contains ( message . Chat . Id ) ) return ;
537
+
538
+ if ( CacheData . CurrentChatOperators . ContainsKey ( message . Chat . Id ) )
533
539
{
534
- if ( ! CacheData . ActiveSupport
535
- . Contains ( message . Chat . Id ) )
536
- {
537
- CacheData . ActiveSupport . Remove ( message . Chat . Id ) ;
538
- CacheData . CurrentChatOperators . Remove ( message . Chat . Id ) ;
539
-
540
- Manager . BotClient . SendTextMessageAsync (
541
- chatId : message . Chat . Id ,
542
- parseMode : ParseMode . Markdown ,
543
- text : String . Format (
544
- "Support session *{0}* ended since operator left the chat." ,
545
- message . LeftChatMember . Username )
546
- ) ;
547
- MessageQueueManager . EnqueueLog ( new ChatMessage ( )
548
- {
549
- ParseMode = ParseMode . Markdown ,
550
- Text = String . Format (
551
- "*[Log]*" +
552
- "Support session ended since operator *{0}* left the chat." +
553
- "\n ChatId: `{1}`" +
554
- "\n Chat: `{2}`" +
555
- "\n UserId: `{3}`" +
556
- "\n \n *hash_code:* #UB{4}-{5}" ,
557
- message . LeftChatMember . Username ,
558
- message . Chat . Id ,
559
- message . Chat . Title ,
560
- message . LeftChatMember . Id ,
561
- message . Chat . Id . ToString ( ) . Replace ( "-" , "" ) ,
562
- Guid . NewGuid ( ) )
563
- } ) ;
564
- }
540
+ CacheData . CurrentChatOperators [ message . Chat . Id ] . Remove ( message . LeftChatMember . Id ) ;
565
541
}
542
+
543
+ if ( CacheData . CurrentChatOperators [ message . Chat . Id ] . Count > 0 ) return ;
544
+
545
+ CacheData . CurrentChatOperators . Remove ( message . Chat . Id ) ;
546
+ CacheData . ActiveSupport . Remove ( message . Chat . Id ) ;
547
+
548
+ Manager . BotClient . SendTextMessageAsync (
549
+ chatId : message . Chat . Id ,
550
+ parseMode : ParseMode . Markdown ,
551
+ text : $ "Support session ended since " +
552
+ $ "operator *{ message . LeftChatMember . Username } * left the chat."
553
+ ) ;
554
+ MessageQueueManager . EnqueueLog ( new ChatMessage ( )
555
+ {
556
+ ParseMode = ParseMode . Markdown ,
557
+ Text = string . Format (
558
+ "*[Log]*" +
559
+ "Support session ended since operator *{0}* left the chat." +
560
+ "\n ChatId: `{1}`" +
561
+ "\n Chat: `{2}`" +
562
+ "\n UserId: `{3}`" +
563
+ "\n \n *hash_code:* #UB{4}-{5}" ,
564
+ message . LeftChatMember . Username ,
565
+ message . Chat . Id ,
566
+ message . Chat . Title ,
567
+ message . LeftChatMember . Id ,
568
+ message . Chat . Id . ToString ( ) . Replace ( "-" , "" ) ,
569
+ Guid . NewGuid ( ) )
570
+ } ) ;
566
571
}
567
572
568
573
private static void EnableDashboardForOwnerAndAdder ( Chat chat )
0 commit comments