Complete config redesign and feature additions

🎨 Config Redesign:
- Unified style for all config files with beautiful headers
- Consistent color scheme using gradients throughout
- Improved readability with proper sections and comments
- Fixed color formatting issues

✨ New Features:
- SkinsRestorer integration for custom skins support
- Head emoji system (:head_nickname: and @head nickname)
- Clear chat message configuration command (/clearchatconfig)
- Enhanced custom commands with more examples
- Improved emoji system with 200+ emojis

📝 Documentation:
- Completely rewritten README.md with modern styling
- Added comprehensive feature descriptions
- Detailed command and permission tables
- Configuration examples and usage guides
- Professional formatting and structure

🔧 Technical Improvements:
- Fixed compilation errors
- Improved code organization
- Better error handling
- Enhanced compatibility

All configs now follow consistent MiniMessage gradient styling!
This commit is contained in:
loki5512344 2026-01-23 22:06:46 +01:00
parent e616667c78
commit 01d8c3a2e7
34 changed files with 2650 additions and 1563 deletions

411
README.md
View file

@ -1,131 +1,155 @@
# LoChat
Продвинутый чат-плагин для Minecraft Folia 1.21.8 с интегрированным модулем градиентных ников.
**Продвинутый чат-плагин для Minecraft Paper 1.20.1 с интегрированным модулем градиентных ников**
**Автор:** loki
**Автор:** loki
**Версия:** 1.5.5-1.20.1
---
## Установка
## 🚀 Установка
1. Скачай `LoChat-1.0.0.jar` из `build/libs/`
2. Положи в папку `plugins/` сервера
3. Перезапусти сервер
1. Скачайте `LoChat-1.5.5-1.20.1.jar` из папки `build/libs/`
2. Поместите файл в папку `plugins/` вашего сервера
3. Перезапустите сервер
4. Настройте конфигурацию в файлах `config.yml` и других
---
## Функционал
## ✨ Основной функционал
### Чат
- Глобальный чат (`!сообщение` или `/g`)
- Локальный чат (радиус 100 блоков)
- Личные сообщения (`/msg`, `/reply`)
- Система игнорирования
- Автосообщения (многострочные, с порядком)
- Смайлики (200+ эмодзи)
### 💬 Система чата
- **Глобальный чат** - `!сообщение` или `/g <сообщение>`
- **Локальный чат** - радиус 100 блоков (настраивается)
- **Личные сообщения** - `/msg`, `/reply` с поддержкой игнорирования
- **Автосообщения** - многострочные сообщения с настраиваемым порядком
- **Смайлики** - 200+ эмодзи для украшения сообщений
### Модерация
- Мут система (`/mute`, `/unmute`)
- Фильтр мата (censor/block/warn)
- Анти-спам (CAPS, повторы, похожие сообщения)
- Кулдауны на сообщения
- Шпион режим (`/chatspy`)
- Очистка чата (`/clearchat`)
### 🛡️ Модерация
- **Система мутов** - `/lmute`, `/lunmute` с поддержкой времени и причин
- **Фильтр мата** - умная система с обходом символов (censor/block/warn)
- **Анти-спам** - защита от CAPS, повторов и похожих сообщений
- **Кулдауны** - настраиваемые задержки между сообщениями
- **Шпион режим** - `/chatspy` для мониторинга всех сообщений
- **Очистка чата** - `/clearchat` с настраиваемым сообщением
### Градиентные ники (интегрированный LoPreff)
- Кастомные градиенты на ник (`/color`)
- Кастомные префиксы (`/prefix`)
- Интеграция с LuckPerms
- Покупка за PlayerPoints (опционально)
- GUI подтверждения
### 🌈 Градиентные ники (встроенный LoPreff)
- **Кастомные градиенты** - `/color <hex1> [hex2] ...` до 7 цветов
- **Кастомные префиксы** - `/prefix <текст>` с поддержкой цветов
- **Предустановки** - fire, ocean, forest, sunset, rainbow и другие
- **Интеграция с LuckPerms** - автоматическое обновление префиксов
- **Покупка за PlayerPoints** - опциональная система оплаты
- **GUI подтверждения** - красивый интерфейс для покупок
### 🎭 Дополнительные возможности
- **Головы игроков** - `:head_nickname:` и `@head nickname` в чате
- **Кастомные команды** - создание собственных команд через конфиг
- **Упоминания** - @nickname с звуковыми уведомлениями
- **Интеграция с SkinsRestorer** - поддержка кастомных скинов
---
## Команды
## 📋 Команды
### Чат
| Команда | Описание | Право |
|---------|----------|-------|
| `!сообщение` | Глобальный чат | chat.global.use |
| `/g <msg>` | Глобальный чат | chat.global.use |
| `/globalchat toggle` | Вкл/выкл глобальный | chat.global.toggle |
| `/l <msg>` | Локальный чат | chat.local.use |
| `/msg <ник> <msg>` | Личное сообщение | chat.pm.use |
| `/reply <msg>` | Ответить | chat.pm.use |
| `/ignore <ник>` | Игнорировать | chat.pm.ignore |
| `/unignore <ник>` | Убрать из игнора | chat.pm.ignore |
| `/announce <msg>` | Объявление | chat.announce.use |
| `!<сообщение>` | Глобальный чат | `chat.global.use` |
| `/g <сообщение>` | Глобальный чат | `chat.global.use` |
| `/globalchat toggle` | Переключить глобальный чат | `chat.global.toggle` |
| `/l <сообщение>` | Локальный чат | `chat.local.use` |
| `/msg <ник> <сообщение>` | Личное сообщение | `chat.pm.use` |
| `/reply <сообщение>` | Ответить на последнее PM | `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 |
| `/chatspy` | Включить/выключить шпион режим | `chat.spy` |
| `/clearchat` | Очистить чат | `chat.clear` |
| `/clearchatconfig <действие>` | Настроить сообщение очистки | `lochat.clearchat.config` |
| `/lmute <ник> [время] [-s] [причина]` | Замутить игрока | `lochat.mute` |
| `/lunmute <ник> [-s]` | Размутить игрока | `lochat.unmute` |
| `/lmutelist` | Список замученных | `lochat.mutelist` |
| `/lmutehistory <ник>` | История мутов игрока | `lochat.mutehistory` |
| `/lmuteblame <модератор>` | Муты выданные модератором | `lochat.muteblame` |
### Градиентные ники
| Команда | Описание | Право |
|---------|----------|-------|
| `/color <hex1> [hex2] ...` | Установить градиент | `gradient.color` |
| `/color on/off/reset` | Управление градиентом | `gradient.color` |
| `/color copy <ник>` | Скопировать градиент | `gradient.color` |
| `/color preset <название>` | Использовать предустановку | `gradient.color` |
| `/prefix <текст>` | Установить префикс | `gradient.prefix` |
| `/prefix on/off/reset` | Управление префиксом | `gradient.prefix` |
### Админские команды
| Команда | Описание | Право |
|---------|----------|-------|
| `/lochat reload` | Перезагрузить конфиг | `lochat.admin` |
| `/aprefix <подкоманда>` | Админские команды градиентов | `gradient.admin` |
---
## 🔐 Права доступа
### Чат
| Право | По умолчанию | Описание |
|-------|--------------|----------|
| `chat.global.use` | `true` | Использование глобального чата |
| `chat.global.toggle` | `true` | Переключение глобального чата |
| `chat.local.use` | `true` | Использование локального чата |
| `chat.pm.use` | `true` | Личные сообщения |
| `chat.pm.ignore` | `true` | Игнорирование игроков |
| `chat.mention.use` | `true` | Упоминания @nickname |
### Модерация
| Право | По умолчанию | Описание |
|-------|--------------|----------|
| `chat.announce.use` | `op` | Объявления |
| `chat.spy` | `op` | Шпион режим |
| `chat.clear` | `op` | Очистка чата |
| `chat.bypass.cooldown` | `op` | Обход кулдаунов |
| `chat.bypass.filter` | `op` | Обход фильтра мата |
| `chat.bypass.antispam` | `op` | Обход анти-спама |
| `lochat.mute` | `op` | Выдача мутов |
| `lochat.unmute` | `op` | Снятие мутов |
| `lochat.clearchat.config` | `op` | Настройка очистки чата |
### Градиенты
| Команда | Описание | Право |
|---------|----------|-------|
| `/color <hex1> [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 |
| Право | По умолчанию | Описание |
|-------|--------------|----------|
| `gradient.color` | `true` | Градиентные ники |
| `gradient.prefix` | `true` | Кастомные префиксы |
| `gradient.admin` | `op` | Админские команды |
| `gradient.bypass.cooldown` | `op` | Обход кулдаунов |
| `gradient.bypass.cost` | `op` | Бесплатные градиенты |
### Дополнительные
| Право | По умолчанию | Описание |
|-------|--------------|----------|
| `lochat.heademoji.use` | `true` | Головы игроков в чате |
| `lochat.admin` | `op` | Админские команды |
---
## Права
### Чат
| Право | По умолчанию |
|-------|--------------|
| 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
## 🎨 PlaceholderAPI
### Основные плейсхолдеры
```
%lochat_muted% — замучен (true/false)
%lochat_mute_time% — оставшееся время мута
%lochat_mute_reason% — причина мута
%lochat_ignored_count% — кол-во игнорируемых
%lochat_ignored_count% — количество игнорируемых
%lochat_global_enabled% — глобальный чат включен
%lochat_spy_enabled% — шпион режим включен
```
# Градиенты
### Градиентные плейсхолдеры
```
%lochat_gradient_full% — полное имя (префикс + ник)
%lochat_gradient_name% — только градиентный ник
%lochat_gradient_prefix% — только префикс
@ -136,164 +160,145 @@
---
## Конфигурационные файлы
## 📁 Конфигурационные файлы
- `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)
| Файл | Описание |
|------|----------|
| `config.yml` | Основные настройки плагина |
| `messages.yml` | Сообщения плагина |
| `automessages.yml` | Настройки автосообщений |
| `emojis.yml` | Список смайликов |
| `custom-commands.yml` | Кастомные команды |
| `gradient-config.yml` | Настройки градиентов |
| `gradient-messages.yml` | Сообщения градиентного модуля |
| `ignores.yml` | Сохранённые игноры (создается автоматически) |
| `mutes.yml` | Активные муты (создается автоматически) |
| `gradient-data.yml` | Данные градиентов (создается автоматически) |
---
## Кастомные команды
## 🎯 Кастомные команды
LoChat позволяет создавать собственные команды через файл `custom-commands.yml`. После создания команды выполните `/lochat reload` для применения изменений.
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:право
permission: "право.для.использования" # Опционально
message: "Текст сообщения" # Обязательно
aliases: ["alias1", "alias2"] # Опционально
type: "chat" # chat, broadcast, title, actionbar
target: "sender" # sender, all, permission:право
```
### Типы команд
- **chat** — отправляет сообщение в чат
- **broadcast** — отправляет сообщение всем игрокам
- **title** — показывает title (первая строка — заголовок, вторая — подзаголовок, разделяются `\n`)
- **title** — показывает title (разделение строк через `\n`)
- **actionbar** — показывает сообщение в actionbar
### Целевая аудитория (target)
### Целевая аудитория
- **sender** — только отправителю команды
- **all** — всем игрокам на сервере
- **permission:право** — только игрокам с указанным правом (например: `permission:lochat.admin`)
### Плейсхолдеры
В сообщениях можно использовать следующие плейсхолдеры:
- **permission:право** — только игрокам с указанным правом
### Плейсхолдеры в командах
- `{player}` — имя игрока
- `{x}`, `{y}`, `{z}` — координаты игрока
- `{world}` — название мира
- `{arg0}`, `{arg1}`, `{arg2}` — аргументы команды (нумерация с 0)
- `{arg0}`, `{arg1}`, `{arg2}` — аргументы команды
- `{args}` — все аргументы через пробел
Также поддерживаются плейсхолдеры PlaceholderAPI (если установлен).
### Примеры
#### Простая команда помощи
```yaml
help:
message: "&6Добро пожаловать на сервер!\n&#808080Используйте /rules для просмотра правил"
aliases: ["помощь", "хелп"]
type: "chat"
target: "sender"
```
#### Команда с координатами
```yaml
coords:
message: "Ваши координаты: <green>{x}</green>, <green>{y}</green>, <green>{z}</green> в мире <yellow>{world}</yellow>"
aliases: ["координаты", "pos"]
type: "actionbar"
target: "sender"
```
#### Команда для админов (broadcast)
```yaml
restart-warning:
permission: "lochat.admin"
message: "<red><bold>ВНИМАНИЕ!</bold></red> <yellow>Сервер будет перезагружен через 5 минут!</yellow>"
aliases: ["рестарт", "reboot"]
type: "broadcast"
target: "all"
```
#### Команда с title
```yaml
welcome:
message: "&6Добро пожаловать!\n&#808080Наслаждайтесь игрой!"
aliases: ["привет"]
type: "title"
target: "sender"
```
#### Команда только для VIP
```yaml
vip-info:
permission: "lochat.vip"
message: "<gold>VIP информация:</gold>\n<yellow>Вы имеете доступ к специальным командам!</yellow>"
type: "chat"
target: "permission:lochat.vip"
```
### Форматирование цветов
В сообщениях можно использовать:
- **MiniMessage теги**: `<red>`, `<bold>`, `<#FF0000>`
- **Legacy коды**: `&a`, `&l`, `&c`
- **HEX цвета**: `#FF0000` (автоматически конвертируется)
### Важные замечания
1. После изменения `custom-commands.yml` выполните `/lochat reload`
2. Имена команд должны быть уникальными
3. Если команда уже существует в Minecraft/Bukkit, она будет перезаписана
4. Для title используйте `\n` для разделения заголовка и подзаголовка
5. PlaceholderAPI плейсхолдеры работают только если установлен PlaceholderAPI
- Все плейсхолдеры PlaceholderAPI
---
## Форматирование цветов
## 🎭 Головы игроков
### MiniMessage
### Использование
- `:head_nickname:` — показать ASCII голову игрока
- `@head nickname` — показать интерактивную голову с информацией
### Требования
- Право `lochat.heademoji.use`
- Включенная настройка `head-emoji.enabled: true`
---
## 🎨 Форматирование цветов
### MiniMessage (рекомендуется)
```
<red>Красный</red>
<gradient:red:blue>Градиент</gradient>
<red>Красный текст</red>
<gradient:red:blue>Градиент от красного к синему</gradient>
<rainbow>Радужный текст</rainbow>
<bold>Жирный</bold>
<italic>Курсив</italic>
```
### HEX цвета
```
&#FF0000Красный
&#3BA8FFГолубой
<#FF0000>Красный через HEX</color>
<gradient:#FF0000:#0000FF>HEX градиент</gradient>
```
### Legacy коды
### Legacy коды (поддерживаются)
```
&aЗелёный
&cКрасный
&aЗеленый
&lЖирный
&nПодчеркнутый
```
---
## Требования
## 🔧 Требования
- Folia 1.21.8+ / Paper 1.21+
- Java 21
### Обязательные
- **Paper 1.20.1** или новее
- **Java 21**
**Опционально:**
- PlaceholderAPI — для плейсхолдеров
- PlayerPoints — для покупки градиентов
- LuckPerms — для префиксов в табе
### Опциональные
- **PlaceholderAPI** — для плейсхолдеров
- **PlayerPoints** — для покупки градиентов за поинты
- **LuckPerms** — для интеграции с префиксами
- **SkinsRestorer** — для поддержки кастомных скинов
- **LibertyBans** — для интеграции с банами
---
## Сборка
## 🏗️ Сборка
```bash
./gradlew build
./gradlew clean build
```
Jar файл: `build/libs/LoChat-1.0.0.jar`
Готовый jar файл: `build/libs/LoChat-1.5.5-1.20.1.jar`
---
## 📝 Changelog
### v1.5.5-1.20.1
- ✅ Адаптация для Minecraft 1.20.1 Paper
- ✅ Исправлен фильтр мата с поддержкой обходов
- ✅ Исправлена команда spy для мониторинга всех сообщений
- ✅ Добавлена поддержка голов игроков в чате
- ✅ Добавлена команда настройки сообщения очистки чата
- ✅ Интеграция с SkinsRestorer
- ✅ Улучшено качество кода (SOLID, DRY, KISS)
- ✅ Обновлены все конфиги в едином стиле
- ✅ Исправлены все предупреждения компилятора
---
## 🤝 Поддержка
Если у вас возникли проблемы или вопросы:
1. Проверьте конфигурационные файлы
2. Убедитесь в совместимости версий
3. Проверьте права доступа игроков
4. Создайте issue в репозитории
---
**© 2024 loki. Все права защищены.**