Плагин SeChat - многофункциональный чат [1.0.0 Beta]

SeChat - многофункциональный чат
Краткое описание:
SeChat v1.0.0 — многофункциональный плагин чата для Spigot 1.21+. Автор: s0nd3r.
4
17
Для версий
  1. 1.21.✘
Java
  1. Java 16
  2. Java 17
  3. Java 18
  4. Java 19
  5. Java 20
  6. Java 21
  7. Java 22
Зависимости
Vault, PlaceholderAPI, LuckPerms
Нашли баг\ошибку? Пишите в обсуждении.


КАНАЛЫ ЧАТА


Настраиваются в channels.yml, количество не ограничено.


ПараметрОписание
formatФормат сообщения. Доступны {player}, {message}, %prefix%, %suffix% и любые PAPI плейсхолдеры
prefixСимвол-переключатель в начале сообщения. Пустая строка — канал по умолчанию
radiusРадиус видимости в блоках. -1 — виден всем на сервере
cooldownКулдаун между сообщениями в миллисекундах
permissionПраво доступа к каналу. Пусто — доступен всем

По умолчанию три канала:


КаналСимволРадиусКулдаунПраво
Локальный100 блоков500 мсВсе
Глобальный!Все1500 мсsechat.channel.global
Админский#Все0sechat.channel.admin

Переключение: /sechat channel <id>. В списке каналов отображается текущий активный.




ЛИЧНЫЕ СООБЩЕНИЯ


КомандаАлиасыОписание
/msg <игрок> <сообщение>/tell, /whisper, /w, /pmОтправить личное сообщение
/r <сообщение>/replyОтветить последнему собеседнику

Форматы отправителя и получателя настраиваются отдельно в messages.yml. Кулдаун — в config.yml. При получении воспроизводится звук. Последний собеседник запоминается у обоих игроков.




ОБЪЯВЛЕНИЯ И ОЧИСТКА


КомандаАлиасыОписание
/broadcast <сообщение>/bc, /announceЦветное объявление всем игрокам
/clearchat/ccОчистить чат у всех (100 пустых строк)



МОДЕРАЦИЯ


Все настройки в moderation.yml.


ФункцияОписаниеПраво обхода
АнтиспамКулдаун между сообщениями в секундахsechat.bypass.spam
Ограничение новичковБлокировка чата на заданное время после первого входаsechat.bypass.newbie
Фильтр словТри режима: partial (по), full (**), custom (своя замена)sechat.bypass.filter
Блокировка ссылокОбнаруживает http, https, wwwsechat.bypass.links
Блокировка IPОбнаруживает адреса формата X.X.X.Xsechat.bypass.links
Проверка капсаМягкий режим — нижний регистр, строгий — блокировкаsechat.bypass.caps
Анти-повторБлокирует похожие сообщения по алгоритму Левенштейнаsechat.bypass.spam
Блокировка символовФильтр по разрешённым символам (паттерн в конфиге)sechat.bypass
Блокировка командСписок запрещённых команд в конфигеsechat.bypass



СИСТЕМА ПИНГОВ


СинтаксисОписаниеПраво
@никВыделяет имя цветом, звук у получателяsechat.ping
@everyoneПингует всех онлайн, отдельный звукsechat.ping.everyone

Цвета и звуки настраиваются в config.yml. Без нужного права текст остаётся как есть, пинга нет.




СКРЫТЫЙ ТЕКСТ


Синтаксис: ||секретный текст|| → заменяется на ████████. При наведении всплывает оригинал. Требует право sechat.hidden. Без права маркеры убираются и текст показывается открыто.




ЦВЕТА И ПЛЕЙСХОЛДЕРЫ


ПравоЧто даёт
sechat.colorЦветовые коды &a, &l и hex &#RRGGBB в сообщениях
sechat.placeholdersПлейсхолдеры %papi% в чате и командах. Без права — вырезаются автоматически



АВТОСООБЩЕНИЯ (automessages.yml)


Включение/выключение, интервал в секундах, случайный или последовательный порядок, неограниченное количество групп, каждая группа — несколько строк отправляются вместе. Работает асинхронно.




ЛОГИРОВАНИЕ


Все сообщения пишутся в plugins/SeChat/logs/chat-YYYY-MM-DD.log.


ТипФормат записи
Сообщение в канале[HH:mm:ss] [канал] ник: сообщение
Личное сообщение[HH:mm:ss] [PM→получатель] ник: сообщение
Системное событие[HH:mm:ss] [SYSTEM] описание

Полностью асинхронное — BlockingQueue + отдельный поток. Файл меняется автоматически в полночь.




КОМАНДЫ


КомандаАлиасыОписаниеПраво
/sechat/scИнформация и версия плагинаsechat.use
/sechat reloadПерезагрузить все конфигиsechat.reload
/sechat channel [id]/sc chСписок каналов / переключитьsechat.use
/msg <игрок> <сообщение>/tell /whisper /w /pmЛичное сообщениеsechat.pm
/r <сообщение>/replyОтветить на ЛСsechat.pm
/broadcast <сообщение>/bc /announceОбъявление всемsechat.broadcast
/clearchat/ccОчистить чатsechat.clearchat



ПРАВА


ПравоОписаниеПо умолчанию
sechat.useОсновные командыВсе
sechat.reloadПерезагрузка конфиговOP
sechat.colorЦвета &a и &#RRGGBB в сообщенияхНет
sechat.placeholdersПлейсхолдеры %papi% в чате и командахНет
sechat.hiddenСкрытый текст ||текст||Нет
sechat.pmЛичные сообщения /msg и /rВсе
sechat.broadcastОбъявления /broadcastOP
sechat.clearchatОчистка чата /clearchatOP
sechat.pingПинг @никВсе
sechat.ping.everyoneПинг @everyoneOP
sechat.channel.globalГлобальный каналВсе
sechat.channel.adminАдмин каналOP
sechat.bypassОбход всех проверок модерацииOP
sechat.bypass.cooldownОбход кулдауна каналовOP
sechat.bypass.spamОбход антиспама и анти-повтораOP
sechat.bypass.newbieОбход блокировки новичковOP
sechat.bypass.filterОбход фильтра словOP
sechat.bypass.linksОбход блокировки ссылок и IPOP
sechat.bypass.capsОбход проверки капсаOP
sechat.adminВсе права одним узломOP



КОНФИГИ


ФайлНазначение
config.ymlВход/выход, кулдаун ЛС, звуки, пинги, скрытый текст, приоритет событий
channels.ymlВсе каналы: название, формат, символ, радиус, кулдаун, право
moderation.ymlАнтиспам, новички, фильтр слов, ссылки, IP, капс, повторы, команды
messages.ymlВсе системные сообщения, форматы ЛС и объявлений
automessages.ymlАвтосообщения: интервал, порядок, группы



ЗАВИСИМОСТИ


ПлагинТипИспользование
VaultОбязательнаяПрефиксы и суффиксы игроков
PlaceholderAPIОпциональнаяПлейсхолдеры в форматах и сообщениях
LuckPermsОпциональнаяЧерез Vault или PAPI

Автор

sondermmm
ВерхНиз