Плагин [1.21+] SNTelegram — мут, кик и бан игрока ответом на его сообщение в Telegram [26.8.1]

[1.21+] SNTelegram — мут, кик и бан игрока ответом на его сообщение в Telegram
Краткое описание:
Мут, кик и бан игрока ответом на его сообщение в Telegram. Плюс двусторонний мост чата.
3
416
Для версий
  1. 1.21.✘
  2. 26.✘
Источник
https://t.me/somikyy
Java
  1. Java 17
  2. Java 18
  3. Java 19
  4. Java 20
  5. Java 21
  6. Java 22
  7. Java 23
  8. Java 25
Исходный код
https://github.com/Somikyy/SNTelegram
Зависимости
Зависимостей нет.
SNTelegram


Модерация сервера прямо из 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м, , , навсегда. Латиница (10m, 2h, 7d) работает так же. Голое число означает минуты. Без ответа на сообщение ник пишется первым: /бан Ник 7д причина.


────────────────────────────────────────────────────────────


Мост чата


Двусторонний, с раскладкой по темам форума Telegram: общий чат, админка и логи — в разные темы одной группы. Настраивается, что именно уходит в каждую тему.


  • События: вход, выход, смерть, достижение, запуск и остановка сервера, журнал модерации
  • Форматирование Telegram переносится в игру: жирный, курсив, зачёркнутый, спойлер, ссылки
  • Медиа без текста приходит пометкой вида «фото», «стикер», «голосовое»


────────────────────────────────────────────────────────────


То же самое из консоли сервера


Код:
/sntelegram mute Steve 10m флуд


Работает, даже когда мост не запущен. Если истёк токен или пропала связь с Telegram, снять мут или бан всё равно можно — иначе наказание пережило бы инструмент, который его выдал.


────────────────────────────────────────────────────────────


Импорт из другого плагина


Код:
/sntelegram import flectonepulse


Поддержаны FlectonePulse, minecraft-telegram-bridge и DiscordSRV. Токен, chat-id и раскладку каналов не придётся искать заново. Результат пишется в отдельный файл на проверку — живой конфиг плагин не перезаписывает, потому что одно из переносимых значений это секрет.


────────────────────────────────────────────────────────────


Чем отличается от других


Честно, включая то, где выигрывают конкуренты.


SNTelegramtgbridgeFlectonePulseSyncShield
Модерация ответом на сообщениеданетнетнет
Мут / кик / бан из Telegramдоменные командынетнетсырой /rcon
Карточка игрокаданетнетнет
Темы форумададатолько исходящиеда
Мост чатадазрелеедада
Runtime-зависимостинольKotlin-рантайместьне заявлено
ЛицензияGPL-3.0MITGPL-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 на сокете.


────────────────────────────────────────────────────────────


Установка за пять минут


  1. Положи jar в plugins/, запусти сервер.
  2. Напиши @BotFather команду /newbot, получи токен.
  3. Создай группу и добавь бота администратором. Без прав администратора он не увидит сообщения обычных участников.
  4. Узнай id группы: добавь в неё @getmyid_bot. У группы id отрицательный.
  5. Впиши токен и id в plugins/SNTelegram/config.yml, выполни /sntelegram reload.


Хочешь разделить чат, админку и логи — включи в группе «Темы», создай их и впиши номера в раздел topics. Номер темы виден в ссылке на неё: t.me/c/1234567890/47thread-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-модель.

Команда в игре

Одна команда с подкомандами. Псевдонимы: /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. Голое число означает минуты. Максимум — год.

Автор

somikyy

Еще ресурсы от somikyy

[1.21+ / 26.x] SNDoctor — покажет, что сломается при обновлении, до обновления | Open Source
[1.21+ / 26.x] SNDoctor — покажет, что сломается при обновлении, до обновления | Open Source
Что из твоих плагинов не запустится на 26.x — видно до обновления, без запуска сервера.
SNSpawners — спавнеры, которые не спавнят мобов | Ноль лагов | Стак · Склад · GUI · HEX
SNSpawners — спавнеры, которые не спавнят мобов | Ноль лагов | Стак · Склад · GUI · HEX
Виртуальные стакающиеся спавнеры: ноль сущностей, ноль воронок, ноль лагов.
ВерхНиз