# LoChat Продвинутый чат-плагин для Minecraft Folia 1.21.8 с интегрированным модулем градиентных ников. **Автор:** loki --- ## Установка 1. Скачай `LoChat-1.0.0.jar` из `build/libs/` 2. Положи в папку `plugins/` сервера 3. Перезапусти сервер --- ## Функционал ### Чат - Глобальный чат (`!сообщение` или `/g`) - Локальный чат (радиус 100 блоков) - Личные сообщения (`/msg`, `/reply`) - Система игнорирования - Автосообщения (многострочные, с порядком) - Смайлики (200+ эмодзи) ### Модерация - Мут система (`/mute`, `/unmute`) - Фильтр мата (censor/block/warn) - Анти-спам (CAPS, повторы, похожие сообщения) - Кулдауны на сообщения - Шпион режим (`/chatspy`) - Очистка чата (`/clearchat`) ### Градиентные ники (интегрированный LoPreff) - Кастомные градиенты на ник (`/color`) - Кастомные префиксы (`/prefix`) - Интеграция с LuckPerms - Покупка за PlayerPoints (опционально) - GUI подтверждения --- ## Команды ### Чат | Команда | Описание | Право | |---------|----------|-------| | `!сообщение` | Глобальный чат | chat.global.use | | `/g ` | Глобальный чат | chat.global.use | | `/globalchat toggle` | Вкл/выкл глобальный | chat.global.toggle | | `/l ` | Локальный чат | chat.local.use | | `/msg <ник> ` | Личное сообщение | chat.pm.use | | `/reply ` | Ответить | chat.pm.use | | `/ignore <ник>` | Игнорировать | chat.pm.ignore | | `/unignore <ник>` | Убрать из игнора | chat.pm.ignore | | `/announce ` | Объявление | chat.announce.use | ### Модерация | Команда | Описание | Право | |---------|----------|-------| | `/chatspy` | Шпион режим | chat.spy | | `/clearchat` | Очистить чат | chat.clear | | `/mute <ник> <время>` | Замутить | chat.mute | | `/unmute <ник>` | Размутить | chat.mute | ### Градиенты | Команда | Описание | Право | |---------|----------|-------| | `/color [hex2]...` | Установить градиент | gradient.color | | `/color on/off/reset` | Управление цветом | gradient.color | | `/color copy <ник>` | Скопировать цвет | gradient.color | | `/prefix <текст>` | Установить префикс | gradient.prefix | | `/prefix on/off/reset` | Управление префиксом | gradient.prefix | | `/aprefix reload` | Перезагрузка | gradient.admin | | `/aprefix info <ник>` | Инфо об игроке | gradient.admin | | `/aprefix setcolor <ник> <цвета>` | Установить цвет | gradient.admin | | `/aprefix setprefix <ник> <текст>` | Установить префикс | gradient.admin | --- ## Права ### Чат | Право | По умолчанию | |-------|--------------| | chat.global.use | true | | chat.global.toggle | true | | chat.global.color | op | | chat.local.use | true | | chat.local.color | op | | chat.pm.use | true | | chat.pm.ignore | true | | chat.mention.use | true | ### Модерация | Право | По умолчанию | |-------|--------------| | chat.announce.use | op | | chat.spy | op | | chat.clear | op | | chat.mute | op | | chat.bypass.cooldown | op | | chat.bypass.filter | op | | chat.bypass.antispam | op | ### Градиенты | Право | По умолчанию | |-------|--------------| | gradient.color | true | | gradient.prefix | true | | gradient.admin | op | | gradient.bypass.cooldown | op | | gradient.bypass.cost | op | --- ## PlaceholderAPI ``` %lochat_muted% — замучен (true/false) %lochat_mute_time% — оставшееся время мута %lochat_mute_reason% — причина мута %lochat_ignored_count% — кол-во игнорируемых %lochat_global_enabled% — глобальный чат включен %lochat_spy_enabled% — шпион режим включен # Градиенты %lochat_gradient_full% — полное имя (префикс + ник) %lochat_gradient_name% — только градиентный ник %lochat_gradient_prefix% — только префикс %lochat_full% — алиас для gradient_full %lochat_name% — алиас для gradient_name %lochat_prefix% — алиас для gradient_prefix ``` --- ## Конфигурационные файлы - `config.yml` — основные настройки чата - `messages.yml` — сообщения чата - `automessages.yml` — автосообщения - `emojis.yml` — смайлики - `custom-commands.yml` — кастомные команды - `gradient-config.yml` — настройки градиентов - `gradient-messages.yml` — сообщения градиентов - `ignores.yml` — сохранённые игноры - `mutes.yml` — активные муты - `gradient-data.yml` — данные градиентов (или SQLite) --- ## Кастомные команды LoChat позволяет создавать собственные команды через файл `custom-commands.yml`. После создания команды выполните `/lochat reload` для применения изменений. ### Структура команды ```yaml command-name: permission: "lochat.command.name" # Право для использования (опционально) message: "Текст сообщения" # Сообщение которое отправится aliases: ["alias1", "alias2"] # Алиасы команды (опционально) type: "chat" # Тип: chat, broadcast, title, actionbar target: "sender" # Кому отправить: sender, all, permission:право ``` ### Типы команд - **chat** — отправляет сообщение в чат - **broadcast** — отправляет сообщение всем игрокам - **title** — показывает title (первая строка — заголовок, вторая — подзаголовок, разделяются `\n`) - **actionbar** — показывает сообщение в actionbar ### Целевая аудитория (target) - **sender** — только отправителю команды - **all** — всем игрокам на сервере - **permission:право** — только игрокам с указанным правом (например: `permission:lochat.admin`) ### Плейсхолдеры В сообщениях можно использовать следующие плейсхолдеры: - `{player}` — имя игрока - `{x}`, `{y}`, `{z}` — координаты игрока - `{world}` — название мира - `{arg0}`, `{arg1}`, `{arg2}` — аргументы команды (нумерация с 0) - `{args}` — все аргументы через пробел Также поддерживаются плейсхолдеры PlaceholderAPI (если установлен). ### Примеры #### Простая команда помощи ```yaml help: message: "Добро пожаловать на сервер!\nИспользуйте /rules для просмотра правил" aliases: ["помощь", "хелп"] type: "chat" target: "sender" ``` #### Команда с координатами ```yaml coords: message: "Ваши координаты: {x}, {y}, {z} в мире {world}" aliases: ["координаты", "pos"] type: "actionbar" target: "sender" ``` #### Команда для админов (broadcast) ```yaml restart-warning: permission: "lochat.admin" message: "ВНИМАНИЕ! Сервер будет перезагружен через 5 минут!" aliases: ["рестарт", "reboot"] type: "broadcast" target: "all" ``` #### Команда с title ```yaml welcome: message: "Добро пожаловать!\nНаслаждайтесь игрой!" aliases: ["привет"] type: "title" target: "sender" ``` #### Команда только для VIP ```yaml vip-info: permission: "lochat.vip" message: "VIP информация:\nВы имеете доступ к специальным командам!" type: "chat" target: "permission:lochat.vip" ``` ### Форматирование цветов В сообщениях можно использовать: - **MiniMessage теги**: ``, ``, `<#FF0000>` - **Legacy коды**: `&a`, `&l`, `&c` - **HEX цвета**: `#FF0000` (автоматически конвертируется) ### Важные замечания 1. После изменения `custom-commands.yml` выполните `/lochat reload` 2. Имена команд должны быть уникальными 3. Если команда уже существует в Minecraft/Bukkit, она будет перезаписана 4. Для title используйте `\n` для разделения заголовка и подзаголовка 5. PlaceholderAPI плейсхолдеры работают только если установлен PlaceholderAPI --- ## Форматирование цветов ### MiniMessage ``` Красный Градиент ``` ### HEX цвета ``` &#FF0000Красный BA8FFГолубой ``` ### Legacy коды ``` &aЗелёный &lЖирный ``` --- ## Требования - Folia 1.21.8+ / Paper 1.21+ - Java 21 **Опционально:** - PlaceholderAPI — для плейсхолдеров - PlayerPoints — для покупки градиентов - LuckPerms — для префиксов в табе --- ## Сборка ```bash ./gradlew build ``` Jar файл: `build/libs/LoChat-1.0.0.jar`