Чат-Антифлуд
Материал из wiki-MyMakerBot
Реакция в чате
Данная команда реагирует на повторяющиеся сообщения пользователей
Размещение в конструкторе
Контроллер: group_msg
Экшн: flood
Исходный код
{db_form name='chat_flood' idx=$group_chat_id} {* INIT *} {if ( (!isset($chat_flood['last_user']) || $chat_flood['last_user'] !== $user_id) || (isset($chat_flood['last_user']) && $chat_flood['last_user'] !== $user_id) || (isset($chat_flood['last_user']) && $chat_flood['last_user'] == $user_id && $chat_flood['time'] < time()-15) )} {db_save name='chat_flood' idx=$group_chat_id data=['group_chat_id'=>$group_chat_id, 'last_user'=>$user_id, 'cnt'=>1, 'time'=>time()]} {db_form name='chat_flood' idx=$group_chat_id} {/if} {* FLOOD *} {if (isset($chat_flood['last_user']) && $chat_flood['last_user'] == $user_id && $chat_flood['time'] > time()-15 && mb_strlen($text, 'utf-8') < 20)} {if ($chat_flood.cnt<4)} {if ($chat_flood.cnt>2)} {tg_sendMessage text="@`$user.username`, Астанавись!" reply_to_message_id=$message_id die=10} {/if} {$chat_flood.cnt = $chat_flood.cnt+1} {$chat_flood.time = time()} {db_save name='chat_flood' idx=$group_chat_id data=$chat_flood} {else} {tg_deleteMessage} {/if} {/if}