Как я начал писать своего чат-менеджера

Привет. Решил рассказать, как взялся писать собственного чат-менеджера.

Чат-менеджер - это система, которая управляет ботом в чатах ВК, Телеграма и других платформ. Обычно такие боты умеют банить, мутить, фильтровать спам, давать фишки вроде установки ника, просмотра погоды и т.д.

Я пользовался разными готовыми чат-менеджерами, но всё чаще видел, что функционала не хватает. Просьбы о доработках игнорировались. Плюс когда-то я занимался разработкой игровых серверов на 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 - Ссылка

Буду рад конструктивной критике - проект делаю в свободное время, между основной работой и подработками.