Как я начал писать своего чат-менеджера
Привет. Решил рассказать, как взялся писать собственного чат-менеджера.
Чат-менеджер - это система, которая управляет ботом в чатах ВК, Телеграма и других платформ. Обычно такие боты умеют банить, мутить, фильтровать спам, давать фишки вроде установки ника, просмотра погоды и т.д.
Я пользовался разными готовыми чат-менеджерами, но всё чаще видел, что функционала не хватает. Просьбы о доработках игнорировались. Плюс когда-то я занимался разработкой игровых серверов на Source-движке (Valve/Steam) и использовал плагины, которые связывали сервера с чатами ВК/ТГ. Работало это криво: возможностей мало, обновлений почти нет. Поэтому я решил сделать свой вариант - бесплатный.
В тот же день сел и начал писать. Выбрал Laravel на PHP - удобный и живой фреймворк.
Что уже работает:
• мультиплатформенный чат-бот с собственной архитектурой;
• интеграция с ВКонтакте и Telegram;
• интеграция с игровыми серверами Counter-Strike Source v34/v93 (OB) и CS:GO Legacy;
• модерирование: бан, мут, капча;
• развлекательные команды: ники, браки, мини-игры, погода и др.;
• серверные фишки: репорт-система, онлайн, статус сервера, обмен сообщениями.
На стороне игровых серверов работает плагин на SourcePawn под Sourcemod. Архитектура - ядро + модули, взаимодействующие через REST API.
Сейчас доделываю обновление, которое позволит любому пользователю привязать свой Steam ID и смотреть игровую статистику прямо из чата. Для этого сделал конвертер SteamID → Steam2 / Steam3 / Steam64 / AccountID / URL Profile.
Планы: завершить «базовую часть» - статистику чата, глобальные антиспам-детекторы, команду /спам. После этого - расширения под CS 1.6 (AMXX 1.9+) и под CS2 (C#). Опыт есть в обеих средах, а вот времени не очень.
Возможно позже посмотрю в сторону модулей для Discord и Max. Да, знаю - Max сейчас все хейтят, так что не кидайтесь сильно 🙂
Использовать можно бесплатно:
Документация - Ссылка
Тема на HLmod - Ссылка
Чат в Telegram - Ссылка
Чат в VK - Ссылка
Буду рад конструктивной критике - проект делаю в свободное время, между основной работой и подработками.