- Для версий
- 1.21.✘
- 26.✘
- Источник
- https://t.me/somikyy
- Исходный код
- https://github.com/Somikyy/SNTelegram
- Зависимости
- Зависимостей нет.
SNTelegram
Модерация сервера прямо из Telegram
Бесплатно · Открытый исходный код · GPL-3.0 · Ноль зависимостей
────────────────────────────────────────────────────────────
Модерация сервера прямо из Telegram
Бесплатно · Открытый исходный код · GPL-3.0 · Ноль зависимостей
────────────────────────────────────────────────────────────
Ответь в Telegram на сообщение игрока и напиши
/мут 10м — он замолчал.Ник вводить не нужно, заходить на сервер не нужно, консоль открывать не нужно.
Мост чата игра ↔ Telegram здесь тоже есть, но он не продукт, а фундамент. Мостов под Telegram уже четыре, и делать пятый было бы бессмысленно — а вот наказать игрока ответом на его сообщение не умеет ни один из них.
────────────────────────────────────────────────────────────
Зачем это нужно
Discord заблокирован в РФ с 8–9 октября 2024. Вместе с ним стал бесполезен DiscordSRV и весь класс инструментов вокруг него. Комьюнити переехало в Telegram — а инструментов под Telegram почти нет.
Идейный предок, репозиторий
minecraft-telegram-bridge, заархивирован 21 июля 2024. Тема «Плагин для чата с телеграмом» от 16 июля 2025 на этом же форуме, где админ ищет аналог DiscordSRV именно с модерацией чата, до сих пор без готового ответа.────────────────────────────────────────────────────────────
Модерация ответом на сообщение
Игрок написал в чат — строка прилетела в Telegram. Отвечаешь на неё:
Код:
/мут 10м мат в чатеБот отвечает:
Код:
🔇 Steve не сможет писать в чат 10 минут. Причина: мат в чатеНик подставился сам из сообщения, на которое ты ответил. Два тапа и десять символов — это вся работа, которую нужно сделать с телефона.
| Команда | По-русски | Что делает |
|---|---|---|
/mute 10m причина | /мут 10м причина | запретить писать в чат |
/unmute | /размут | снять запрет |
/kick причина | /кик причина | отключить от сервера |
/ban 7d причина | /бан 7д причина | забанить |
/unban Ник | /разбан Ник | снять бан |
/info | /инфо | карточка игрока |
/list | /онлайн | кто на сервере |
/status | /статус | TPS, память, очередь отправки |
/say текст | /сказать текст | объявление в игровой чат |
/help | /помощь | список команд |
Сроки:
10м, 2ч, 7д, навсегда. Латиница (10m, 2h, 7d) работает так же. Голое число означает минуты. Без ответа на сообщение ник пишется первым: /бан Ник 7д причина.────────────────────────────────────────────────────────────
Мост чата
Двусторонний, с раскладкой по темам форума Telegram: общий чат, админка и логи — в разные темы одной группы. Настраивается, что именно уходит в каждую тему.
- События: вход, выход, смерть, достижение, запуск и остановка сервера, журнал модерации
- Форматирование Telegram переносится в игру: жирный, курсив, зачёркнутый, спойлер, ссылки
- Медиа без текста приходит пометкой вида «фото», «стикер», «голосовое»
────────────────────────────────────────────────────────────
То же самое из консоли сервера
Код:
/sntelegram mute Steve 10m флудРаботает, даже когда мост не запущен. Если истёк токен или пропала связь с Telegram, снять мут или бан всё равно можно — иначе наказание пережило бы инструмент, который его выдал.
────────────────────────────────────────────────────────────
Импорт из другого плагина
Код:
/sntelegram import flectonepulseПоддержаны FlectonePulse, minecraft-telegram-bridge и DiscordSRV. Токен, chat-id и раскладку каналов не придётся искать заново. Результат пишется в отдельный файл на проверку — живой конфиг плагин не перезаписывает, потому что одно из переносимых значений это секрет.
────────────────────────────────────────────────────────────
Чем отличается от других
Честно, включая то, где выигрывают конкуренты.
| SNTelegram | tgbridge | FlectonePulse | SyncShield | |
|---|---|---|---|---|
| Модерация ответом на сообщение | да | нет | нет | нет |
| Мут / кик / бан из Telegram | доменные команды | нет | нет | сырой /rcon |
| Карточка игрока | да | нет | нет | нет |
| Темы форума | да | да | только исходящие | да |
| Мост чата | да | зрелее | да | да |
| Runtime-зависимости | ноль | Kotlin-рантайм | есть | не заявлено |
| Лицензия | GPL-3.0 | MIT | GPL-3.0 | файла LICENSE в репозитории нет |
tgbridge зрелее как мост, и пользователей у него больше. Если нужен только мост — он хороший выбор. SNTelegram имеет смысл, если ты модерируешь с телефона.
Автор FlectonePulse принципиально не будет делать модерацию — в его документации дословно: «Commands can ONLY be informational; they do not and will not execute anything on the server».
────────────────────────────────────────────────────────────
Чего здесь нет намеренно
Команд /rcon и /console. Их нет и не будет. Возможность выполнить из чата любую команду означает, что уведённый Telegram-аккаунт админа равен полному доступу к серверу. Набор глаголов закрыт, и самотест отдельно проверяет, что он закрыт.
Показа IP игроков без явного включения в конфиге. Группа Telegram не всегда состоит только из администрации.
Разбора текста из Telegram как MiniMessage. Иначе любой участник группы мог бы выдать всем игрокам кликабельную строку, запускающую команду от их имени.
────────────────────────────────────────────────────────────
Что внутри
111 КБ, 5 500 строк, ни одной сторонней библиотеки. Jar можно прочитать глазами за вечер, и это не случайность: в RU-сегменте после разбора бэкдора в мае 2026 закрытый jar от неизвестного автора справедливо читается как угроза.
Клиент Bot API написан на
java.net.http из стандартной библиотеки. Разбор JSON — свой, двести строк. Ничего не шейдится, поэтому конфликт с другими плагинами по библиотекам невозможен.127 автоматических проверок прогоняются без сети и без сервера за 18 секунд. Внутри — настоящий сервер Bot API на
com.sun.net.httpserver, к которому мост подключается ровно тем же путём, каким подключался бы к Telegram. Проверяется код, который отгружается, вплоть до JSON на сокете.────────────────────────────────────────────────────────────
Установка за пять минут
- Положи jar в
plugins/, запусти сервер. - Напиши @BotFather команду
/newbot, получи токен. - Создай группу и добавь бота администратором. Без прав администратора он не увидит сообщения обычных участников.
- Узнай id группы: добавь в неё @getmyid_bot. У группы id отрицательный.
- Впиши токен и id в
plugins/SNTelegram/config.yml, выполни/sntelegram reload.
Хочешь разделить чат, админку и логи — включи в группе «Темы», создай их и впиши номера в раздел
topics. Номер темы виден в ссылке на неё: t.me/c/1234567890/47 → thread-id: 47.Важно про тему General. У неё нет номера — пиши
thread-id: 0. Значение 1, которое советуют почти все туториалы, верно для MTProto и неверно для Bot API: там оно отклоняется ошибкой 400. Плагин это распознаёт и подсказывает, но лучше сразу писать 0.────────────────────────────────────────────────────────────
Требования
- Paper 1.21+ или форк (Purpur, Pufferfish). Spigot не подойдёт: нужен
AsyncChatEvent. - Java 17+
- Исходящий доступ к
api.telegram.org— либо прокси, либо свой сервер Bot API. И то и другое настраивается в конфиге.
Про 26.x: код собирается против paper-api 26.2 на каждый коммит, но на живом сервере 26.x пока не запускался. Как только запустится — здесь появится строка «проверено».
────────────────────────────────────────────────────────────
Открытый исходный код · GPL-3.0-or-later · бесплатно навсегда
Исходники:github.com/Somikyy/SNTelegram
Автор: Somikyy · t.me/somikyy
Там выходят новые плагины линейки SN, там же можно заказать плагин или 3D-модель.
Открытый исходный код · GPL-3.0-or-later · бесплатно навсегда
Исходники:github.com/Somikyy/SNTelegram
Автор: Somikyy · t.me/somikyy
Там выходят новые плагины линейки SN, там же можно заказать плагин или 3D-модель.
Команда в игре
Одна команда с подкомандами. Псевдонимы:
/sntg, /тг.| Команда | Что делает | Право |
|---|---|---|
/sntelegram | состояние моста: опрос, счётчики, темы, активные муты | sntelegram.use |
/sntelegram status | то же самое явно | sntelegram.use |
/sntelegram version | версия плагина | sntelegram.use |
/sntelegram reload | перечитать config.yml и перезапустить мост | sntelegram.reload |
/sntelegram import <источник> | импорт настроек из другого плагина | sntelegram.reload |
/sntelegram mute <ник> [срок] [причина] | запретить писать в чат | sntelegram.moderate |
/sntelegram unmute <ник> | снять запрет | sntelegram.moderate |
/sntelegram kick <ник> [причина] | отключить от сервера | sntelegram.moderate |
/sntelegram ban <ник> [срок] [причина] | забанить | sntelegram.moderate |
/sntelegram unban <ник> | снять бан | sntelegram.moderate |
/sntelegram info <ник> | карточка игрока | sntelegram.moderate |
Русские глаголы работают и здесь:
/sntelegram мут Ник 10м причина.Источники для импорта:
flectonepulse, mctgbridge, discordsrv.Права
| Право | Что даёт | По умолчанию |
|---|---|---|
sntelegram.use | просмотр состояния моста | op |
sntelegram.reload | перезагрузка настроек и импорт | op |
sntelegram.moderate | мут, размут, кик, бан, разбан из консоли | op |
sntelegram.moderate намеренно отделено от sntelegram.use: смотреть состояние моста безопасно, а банить — нет.Команды в Telegram
Прав Bukkit не требуют. Доступ определяется двумя источниками: списком Telegram-id в
moderation.admins, который нельзя изменить изнутри Telegram, и администраторами самой группы, если включено moderation.trust-chat-admins (по умолчанию включено).| Команда | Русский вариант | Цель | Срок по умолчанию |
|---|---|---|---|
/mute [срок] [причина] | /мут, /замутить | ответ или ник | 10 минут |
/unmute | /размут | ответ или ник | — |
/kick [причина] | /кик | ответ или ник | — |
/ban [срок] [причина] | /бан, /забанить | ответ или ник | навсегда |
/unban <ник> | /разбан, /pardon | ник | — |
/info | /инфо, /кто | ответ или ник | — |
/list | /онлайн, /список | — | — |
/status | /статус, /тпс | — | — |
/say <текст> | /сказать, /объявить | — | — |
/help | /помощь, /команды | — | — |
Единицы срока:
с/s — секунды, м/m — минуты, ч/h — часы, д/d — дни, н/w — недели, навсегда/perm. Голое число означает минуты. Максимум — год.