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

View file

@ -1,74 +1,90 @@
# LoChat - Автосообщения # ╔══════════════════════════════════════════════════════════════════════════════╗
# Автор: loki # ║ LoChat Auto Messages ║
# # ║ Автосообщения чата ║
# Смайлики настраиваются в emojis.yml # ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# ═══════════════════════════════════════════
# НАСТРОЙКИ
# ═══════════════════════════════════════════
settings: settings:
enabled: true # Префикс автосообщений
interval: 300 # Интервал между сообщениями (секунды) prefix: "<gradient:#00D4FF:#0099CC>[INFO]</gradient>"
prefix: "&6[&eINFO&6]&r"
# Режим отправки: # Режим отправки: sequential (по порядку), random (случайно), custom (свой порядок)
# - "sequential" — по порядку (1, 2, 3...)
# - "random" — случайный порядок
# - "custom" — свой порядок (указать в order)
mode: "sequential" mode: "sequential"
# Свой порядок (для mode: custom) # Свой порядок сообщений (только для режима custom)
# Можно указывать названия или номера # Можно указывать номера или названия сообщений
# Пример: "welcome, rules, 3, donate, tips" order: "welcome, rules, discord, website"
order: "welcome, motd, rules, donate, tips, discord"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# ═══════════════════════════════════════════
# СООБЩЕНИЯ
# ═══════════════════════════════════════════
messages: messages:
# Приветствие (однострочное) # Приветственное сообщение
welcome: "&aДобро пожаловать на сервер! &e:star:" welcome:
- "<gradient:#FFD700:#FFA500>Добро пожаловать на наш сервер!</gradient>"
- "<gray>Используйте</gray> <gradient:#87CEEB:#4682B4>/help</gradient> <gray>для получения помощи</gray>"
# MOTD (многострочное) # Правила сервера
motd:
- "&6╔══════════════════════════════════╗"
- "&6║ &e:star: &fДобро пожаловать! &e:star: &6║"
- "&6║ &7Онлайн: &a%online% &7игроков &6║"
- "&6║ &7Сайт: &bexample.com &6║"
- "&6╚══════════════════════════════════╝"
# Правила
rules: rules:
- "&c&l:warning: ПРАВИЛА СЕРВЕРА :warning:" - "<gradient:#FF6B6B:#FF4757>Соблюдайте правила сервера!</gradient>"
- "&71. &fНе гриферить" - "<gray>Подробнее:</gray> <gradient:#87CEEB:#4682B4>/rules</gradient>"
- "&72. &fНе читерить"
- "&73. &fУважать игроков"
- "&aПолные правила: &e/rules"
# Донат # Информация о Discord
discord:
- "<gradient:#7289DA:#5865F2>Присоединяйтесь к нашему Discord!</gradient>"
- "<gray>Ссылка:</gray> <click:open_url:'https://discord.gg/example'><gradient:#87CEEB:#4682B4>discord.gg/example</gradient></click>"
# Веб-сайт
website:
- "<gradient:#00FF88:#00CC66>Посетите наш сайт!</gradient>"
- "<gray>Адрес:</gray> <click:open_url:'https://example.com'><gradient:#87CEEB:#4682B4>example.com</gradient></click>"
# Донат информация
donate: donate:
- "#FFD700&l:gem: ДОНАТ :gem:" - "<gradient:#FFD700:#FFA500>Поддержите сервер!</gradient>"
- "&7Поддержи сервер и получи" - "<gray>Донат:</gray> <click:open_url:'https://donate.example.com'><gradient:#87CEEB:#4682B4>donate.example.com</gradient></click>"
- "&7крутые привилегии!"
- "&eПодробнее: &a/donate"
# Советы # Градиентные ники
tips: gradients:
- "&b:zap: &fСовет дня:" - "<gradient:#9370DB:#8A2BE2>Создайте красивый ник!</gradient>"
- "&7Используй &e/sethome &7чтобы" - "<gray>Команда:</gray> <gradient:#87CEEB:#4682B4>/color</gradient> <gray>для градиентов</gray>"
- "&7сохранить свою локацию!"
# Discord # Чат команды
discord: "&9:game: &fНаш Discord: &bdiscord.gg/example" chat-commands:
- "<gradient:#FFA726:#FF9800>Полезные команды чата:</gradient>"
- "<gradient:#87CEEB:#4682B4>/msg <игрок> <сообщение></gradient> <gray>- личное сообщение</gray>"
- "<gradient:#87CEEB:#4682B4>/ignore <игрок></gradient> <gray>- игнорировать игрока</gray>"
# Голосование # Онлайн статистика
vote: "&a:thumbsup: &fГолосуй за сервер: &e/vote &7и получи награды!" online-stats:
- "<gradient:#6BCB77:#4ECDC4>Сейчас онлайн: {online} игроков</gradient>"
- "<gray>Максимум за день:</gray> <white>{max_online}</white>"
# Градиентное сообщение # Время на сервере
gradient: server-time:
- "<gradient:#FF6B6B:#4ECDC4>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>" - "<gradient:#87CEEB:#4682B4>Время на сервере:</gradient> <white>{time}</white>"
- "" - "<gray>Дата:</gray> <white>{date}</white>"
- " &f:fire: &eСпециальное событие!"
- " &7Двойной опыт до конца недели!" # События
- "" events:
- "<gradient:#4ECDC4:#FF6B6B>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>" - "<gradient:#FF69B4:#FF1493>Следите за событиями!</gradient>"
- "<gray>Расписание:</gray> <gradient:#87CEEB:#4682B4>/events</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ПЛЕЙСХОЛДЕРЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Доступные плейсхолдеры в сообщениях:
# {online} - количество игроков онлайн
# {max_online} - максимальное количество игроков (из server.properties)
# {time} - текущее время
# {date} - текущая дата
# {server_name} - название сервера
# {tps} - TPS сервера (если доступно)
#
# Также поддерживаются все плейсхолдеры PlaceholderAPI

View file

@ -1,33 +1,75 @@
# LoChat Configuration # ╔══════════════════════════════════════════════════════════════════════════════╗
# Author: loki # ║ LoChat Configuration ║
# Config Version: 2 # ║ Продвинутый чат-плагин для Paper ║
# ║ Версия: 1.5.5-1.20.1 ║
# ║ Автор: loki ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
config-version: 2 config-version: 3
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОСНОВНЫЕ НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Префикс плагина в сообщениях
prefix: "<gradient:#00D4FF:#0099CC>[LoChat]</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ ЧАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
chat: chat:
# ═══════════════════════════════════════════════════════════════════════════
# ГЛОБАЛЬНЫЙ ЧАТ
# ═══════════════════════════════════════════════════════════════════════════
global: global:
# Включить глобальный чат
enabled: true enabled: true
prefix: "[G]" # Символ для отправки в глобальный чат
format: "<prefix><player>: <message>"
symbol: "!" symbol: "!"
# Кулдаун между сообщениями (секунды)
cooldown: 3 cooldown: 3
# Префикс глобального чата
prefix: "<gradient:#FFD700:#FFA500>[G]</gradient>"
# Формат сообщения: {prefix} {player} {message}
format: "{prefix} <gradient:#00FF88:#00CC66>{player}</gradient><dark_gray>:</dark_gray> {message}"
# ═══════════════════════════════════════════════════════════════════════════
# ЛОКАЛЬНЫЙ ЧАТ
# ═══════════════════════════════════════════════════════════════════════════
local: local:
# Включить локальный чат
enabled: true enabled: true
# Радиус локального чата (блоки)
radius: 100 radius: 100
prefix: "[L]" # Кулдаун между сообщениями (секунды)
format: "<player>: <message>"
cooldown: 1 cooldown: 1
# Префикс локального чата
prefix: "<gradient:#87CEEB:#4682B4>[L]</gradient>"
# Формат сообщения
format: "{prefix} <gradient:#00FF88:#00CC66>{player}</gradient><dark_gray>:</dark_gray> {message}"
# ═══════════════════════════════════════════════════════════════════════════
# ЛИЧНЫЕ СООБЩЕНИЯ
# ═══════════════════════════════════════════════════════════════════════════
pm: pm:
# Включить личные сообщения
enabled: true enabled: true
# Кулдаун между PM (секунды)
cooldown: 2
# Логировать PM в консоль
log: false log: false
# Звук при получении PM
sound: true sound: true
sound-type: "ENTITY_EXPERIENCE_ORB_PICKUP" sound-type: "BLOCK_NOTE_BLOCK_PLING"
# Интеграция с GradientNick (LoPreff) # ┌─────────────────────────────────────────────────────────────────────────────┐
# Использует PlaceholderAPI плейсхолдеры # │ ГРАДИЕНТНЫЕ НИКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Интеграция с градиентным модулем (встроенный LoPreff)
lopreff: lopreff:
# Включить градиентные ники
enabled: true enabled: true
# Использовать градиентный ник в чате # Использовать градиентный ник в чате
use-gradient-name: true use-gradient-name: true
@ -41,22 +83,45 @@ display:
# Обновлять tab list # Обновлять tab list
update-tab-list: true update-tab-list: true
# Упоминания @ник # ┌─────────────────────────────────────────────────────────────────────────────┐
mentions: # │ УПОМИНАНИЯ │
enabled: true # └─────────────────────────────────────────────────────────────────────────────┘
sound: true
sound-type: "BLOCK_NOTE_BLOCK_PLING"
# Выделение при @ник
highlight: "&#04CADF@{player}"
# Выделение когда твой ник написали (без @)
self-highlight: "&#04CADF{player}"
# Фильтр мата mentions:
filter: # Включить систему упоминаний (@nickname)
enabled: true enabled: true
# Воспроизводить звук при упоминании
sound: true
# Тип звука
sound-type: "BLOCK_NOTE_BLOCK_PLING"
# Подсветка упоминания в чате
highlight: "<gradient:#FFFF00:#FFD700>@{player}</gradient>"
# Подсветка собственного ника
self-highlight: "<gradient:#FFD700:#FFA500>{player}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ФИЛЬТР МАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
filter:
# Включить фильтр мата
enabled: true
# Список запрещенных слов (простая проверка)
words:
- "хуй"
- "пизд"
- "блять"
- "ебать"
- "сука"
- "мудак"
- "гандон"
- "пидор"
- "говно"
- "шлюха"
# Регулярные выражения для обнаружения мата с обходами # Регулярные выражения для обнаружения мата с обходами
patterns: patterns:
# Основные корни с вариациями
- "х\\s*у\\s*[йяёе]" # хуй, хуя, хуё, хуе - "х\\s*у\\s*[йяёе]" # хуй, хуя, хуё, хуе
- "[хx]\\s*у\\s*[йяёе]" # латиница: xuй - "[хx]\\s*у\\s*[йяёе]" # латиница: xuй
- "п\\s*[иi]\\s*з\\s*д" # пизд, пiзд - "п\\s*[иi]\\s*з\\s*д" # пизд, пiзд
@ -65,154 +130,113 @@ filter:
- "б\\s*л\\s*я\\s*[тдь]" # блять, блядь - "б\\s*л\\s*я\\s*[тдь]" # блять, блядь
- "с\\s*у\\s*к\\s*[аи]" # сука, суки - "с\\s*у\\s*к\\s*[аи]" # сука, суки
- "м\\s*у\\s*д\\s*[аи]" # муда, муди - "м\\s*у\\s*д\\s*[аи]" # муда, муди
- "г\\s*а\\s*н\\s*д\\s*о\\s*н" # гандон
- "д\\s*р\\s*о\\s*ч" # дрочить
- "с\\s*с\\s*а\\s*т\\s*ь" # ссать
- "с\\s*р\\s*а\\s*т\\s*ь" # срать
- "ш\\s*м\\s*а\\s*р\\s*[аи]" # шмара
- "ч\\s*м\\s*[оы]" # чмо, чмы
- "г\\s*н\\s*и\\s*д\\s*[аы]" # гнида
# Простые слова (для быстрой проверки) # Действие при обнаружении мата: censor, block, warn
words: action: "censor"
# Основные # Замена для цензуры
- "хуй"
- "хуя"
- "хуё"
- "хуе"
- "хуёк"
- "хуёчек"
- "хуесос"
- "хуеплёт"
- "пизда"
- "пизде"
- "пизду"
- "пиздец"
- "пиздюк"
- "пиздюшка"
- "пиздануть"
- "спиздить"
- "пиздоглазый"
- "ебать"
- "ебал"
- "ебут"
- "ебись"
- "ебитесь"
- "ебашить"
- "уёбывать"
- "заёбывать"
- "ебашка"
- "ебанарот"
- "блять"
- "блядь"
- "блядина"
- "сука"
- "суки"
- "сучка"
- "мудак"
- "мудила"
- "мудачок"
- "гандон"
- "гандоник"
- "пидор"
- "пидорас"
- "дрочить"
- "дрочка"
- "онанист"
- "ссать"
- "срать"
- "говно"
- "говнюк"
- "шмара"
- "шлюха"
- "проститутка"
- "чмо"
- "чмошник"
- "чмырь"
- "гнида"
- "тварь"
- "падла"
- "сволочь"
- "охуеть"
- "ахуеть"
- "нихуя"
- "кончепизд"
# Обходы с символами
- "х*й"
- "п@зда"
- "б#ять"
- "хуй"
- "ebat"
- "pidar"
- "mudak"
action: "censor" # censor/block/warn
replacement: "***" replacement: "***"
# Анти-спам # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АНТИ-СПАМ │
# └─────────────────────────────────────────────────────────────────────────────┘
antispam: antispam:
# Включить анти-спам
enabled: true enabled: true
# Максимальный процент заглавных букв
max-caps-percent: 70 max-caps-percent: 70
# Максимальное количество повторяющихся символов
max-repeat-chars: 5 max-repeat-chars: 5
# Задержка для проверки похожих сообщений (секунды)
similar-message-delay: 30 similar-message-delay: 30
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АВТОСООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
automessages: automessages:
# Включить автосообщения
enabled: true enabled: true
# Интервал между сообщениями (секунды)
interval: 300 interval: 300
# Случайный порядок сообщений
random: false random: false
formats: # ┌─────────────────────────────────────────────────────────────────────────────┐
announcement: "&#04CADF[ОБЪЯВЛЕНИЕ] <message>" # │ ОБЪЯВЛЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Настройки объявлений
announcements: announcements:
# Показывать title при объявлении # Показывать title при объявлении
show-title: true show-title: true
# Заголовок title # Заголовок title
title-header: "&#04CADFОБЪЯВЛЕНИЕ" title-header: "<gradient:#FF6B6B:#FF4757>ОБЪЯВЛЕНИЕ</gradient>"
# Показывать actionbar при объявлении # Показывать actionbar при объявлении
show-actionbar: true show-actionbar: true
# Время показа title (в секундах) # Время показа title (в секундах)
title-duration: 3 title-duration: 3
# ======================================== # Формат объявления
# Система мутов formats:
# ======================================== announcement: "<gradient:#FF6B6B:#FF4757>[ОБЪЯВЛЕНИЕ]</gradient> <message>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОЧИСТКА ЧАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
clearchat:
message:
# Показывать сообщение после очистки чата
enabled: true
# Текст сообщения ({player} - имя администратора)
text: "<gradient:#FF6B6B:#FF4757>Чат очищен администратором {player}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГОЛОВЫ ИГРОКОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
head-emoji:
# Включить функцию голов игроков
enabled: true
# Разрешить использование @head команд
allow-player-heads: true
# Максимальное количество голов в одном сообщении
max-heads-per-message: 3
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ СИСТЕМА МУТОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
mute: mute:
# Сообщения с плейсхолдерами: # Сообщения с плейсхолдерами:
# %duration% - время мута # %duration% - время мута
# %reason% - причина # %reason% - причина
# %player% - замученный игрок # %player% - замученный игрок
# %operator% - модератор (чистый ник без префикса и цвета) # %operator% - модератор
messages: messages:
# Сообщение при муте (broadcast) # Сообщение при муте (broadcast)
muted: "&#FF6B6B%player% &#808080был замучен на &#FF6B6B%duration% &#808080модератором &#FF6B6B%operator%&#808080. Причина: &#FF6B6B%reason%" muted: "<gradient:#FF6B6B:#FF4757>%player%</gradient> <gray>был замучен на</gray> <gradient:#FF6B6B:#FF4757>%duration%</gradient> <gray>модератором</gray> <gradient:#FF6B6B:#FF4757>%operator%</gradient><gray>. Причина:</gray> <gradient:#FF6B6B:#FF4757>%reason%</gradient>"
# Сообщение при размуте (broadcast) # Сообщение при размуте (broadcast)
unmuted: "&#6BCB77%player% &#808080был размучен модератором &#6BCB77%operator%" unmuted: "<gradient:#6BCB77:#4ECDC4>%player%</gradient> <gray>был размучен модератором</gray> <gradient:#6BCB77:#4ECDC4>%operator%</gradient>"
# Сообщение замученному игроку # Сообщение замученному игроку
you-muted: "&#FF6B6BВы замучены на %duration%! Причина: %reason%" you-muted: "<gradient:#FF6B6B:#FF4757>Вы замучены на %duration%! Причина: %reason%</gradient>"
# Сообщение при перманентном муте # Сообщение при перманентном муте
you-muted-permanent: "&#FF6B6BВы замучены навсегда! Причина: %reason%" you-muted-permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда! Причина: %reason%</gradient>"
# Сообщение при попытке написать в чат # Сообщение при попытке написать в чат
cannot-chat: "&#FF6B6BВы замучены! Осталось: %duration%" cannot-chat: "<gradient:#FF6B6B:#FF4757>Вы замучены! Осталось: %duration%</gradient>"
cannot-chat-permanent: "&#FF6B6BВы замучены навсегда!" cannot-chat-permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда!</gradient>"
# Тихий мут (только для тех кто видит) # Тихий мут (только для тех кто видит)
silent-muted: "&#808080[Тихо] &#FF6B6B%player% &#808080замучен на &#FF6B6B%duration% &#808080(%operator%). Причина: %reason%" silent-muted: "<gray>[Тихо]</gray> <gradient:#FF6B6B:#FF4757>%player%</gradient> <gray>замучен на</gray> <gradient:#FF6B6B:#FF4757>%duration%</gradient> <gray>(%operator%). Причина: %reason%</gray>"
silent-unmuted: "&#808080[Тихо] &#6BCB77%player% &#808080размучен (%operator%)" silent-unmuted: "<gray>[Тихо]</gray> <gradient:#6BCB77:#4ECDC4>%player%</gradient> <gray>размучен (%operator%)</gray>"
# Причина по умолчанию если не указана # Причина по умолчанию если не указана
default-reason: "Нету." default-reason: "Нарушение правил"
# Максимальное время мута по умолчанию (если не указано время) # Максимальное время мута по умолчанию (если не указано время)
# Используется наивысшее доступное время из прав игрока
# Формат: 1d, 7d, 30d, perm (перманентный)
default-duration: "7d" default-duration: "7d"
# Доступные длительности для прав lochat.mute.dur.<время> # Доступные длительности для прав lochat.mute.dur.<время>
# Игрок с правом lochat.mute.dur.7d может мутить максимум на 7 дней
# lochat.mute.dur.perm - может мутить навсегда
durations: durations:
- "10m" - "10m"
- "30m" - "30m"
@ -224,4 +248,4 @@ mute:
- "7d" - "7d"
- "14d" - "14d"
- "30d" - "30d"
- "perm" - "perm"

View file

@ -1,51 +1,169 @@
# Кастомные команды LoChat # ╔══════════════════════════════════════════════════════════════════════════════╗
# Здесь можно создавать свои команды с сообщениями и алиасами # ║ LoChat Custom Commands ║
# ║ Кастомные команды ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# Пример структуры: # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ПРИМЕРЫ КОМАНД │
# └─────────────────────────────────────────────────────────────────────────────┘
# Структура команды:
# command-name: # command-name:
# permission: "lochat.command.name" # Право для использования (опционально) # permission: "право.для.использования" # Опционально
# message: "Текст сообщения" # Сообщение которое отправится # message: "Текст сообщения" # Обязательно
# aliases: ["alias1", "alias2"] # Алиасы команды (опционально) # aliases: ["alias1", "alias2"] # Опционально
# type: "chat" # Тип: chat, broadcast, title, actionbar # type: "chat" # chat, broadcast, title, actionbar
# target: "sender" # Кому отправить: sender, all, permission:право # target: "sender" # sender, all, permission:право
# ═══════════════════════════════════════════════════════════════════════════════
# ИНФОРМАЦИОННЫЕ КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
# Примеры команд:
help: help:
message: "&6Добро пожаловать на сервер!\n&#808080Используйте /rules для просмотра правил" message: |
<gradient:#FFD700:#FFA500>═══════ Помощь по серверу ═══════</gradient>
<gradient:#87CEEB:#4682B4>/rules</gradient> <gray>- правила сервера</gray>
<gradient:#87CEEB:#4682B4>/discord</gradient> <gray>- наш Discord</gray>
<gradient:#87CEEB:#4682B4>/website</gradient> <gray>- официальный сайт</gray>
<gradient:#87CEEB:#4682B4>/coords</gradient> <gray>- ваши координаты</gray>
<gradient:#87CEEB:#4682B4>/time</gradient> <gray>- время на сервере</gray>
aliases: ["помощь", "хелп"] aliases: ["помощь", "хелп"]
type: "chat" type: "chat"
target: "sender" target: "sender"
rules: rules:
message: "&c&lПРАВИЛА СЕРВЕРА:\n&#8080801. Не гриферить\n2. Не читерить\n3. Уважать других игроков" message: |
<gradient:#FF6B6B:#FF4757>═══════ Правила сервера ═══════</gradient>
<white>1.</white> <gray>Не используйте читы и моды</gray>
<white>2.</white> <gray>Уважайте других игроков</gray>
<white>3.</white> <gray>Не спамьте в чате</gray>
<white>4.</white> <gray>Не стройте рядом с чужими постройками</gray>
<white>5.</white> <gray>Не используйте мат и оскорбления</gray>
<gradient:#FFA726:#FF9800>Нарушение правил карается мутом или баном!</gradient>
aliases: ["правила", "rule"] aliases: ["правила", "rule"]
type: "chat" type: "chat"
target: "sender" target: "sender"
discord: discord:
message: "<blue>Наш Discord сервер: discord.gg/example</blue>" message: |
<gradient:#7289DA:#5865F2>═══════ Наш Discord ═══════</gradient>
<gray>Присоединяйтесь к нашему сообществу!</gray>
<click:open_url:'https://discord.gg/example'><gradient:#87CEEB:#4682B4>🔗 discord.gg/example</gradient></click>
<gray>В Discord вы можете:</gray>
<white>•</white> <gray>Общаться с игроками</gray>
<white>•</white> <gray>Получать новости сервера</gray>
<white>•</white> <gray>Участвовать в событиях</gray>
aliases: ["дискорд", "ds"] aliases: ["дискорд", "ds"]
type: "chat" type: "chat"
target: "sender" target: "sender"
# Команда для админов website:
message: |
<gradient:#00FF88:#00CC66>═══════ Официальный сайт ═══════</gradient>
<click:open_url:'https://example.com'><gradient:#87CEEB:#4682B4>🌐 example.com</gradient></click>
<gray>На сайте доступно:</gray>
<white>•</white> <gray>Карта сервера</gray>
<white>•</white> <gray>Статистика игроков</gray>
<white>•</white> <gray>Форум и новости</gray>
aliases: ["сайт", "site"]
type: "chat"
target: "sender"
# ═══════════════════════════════════════════════════════════════════════════════
# УТИЛИТЫ
# ═══════════════════════════════════════════════════════════════════════════════
coords:
message: |
<gradient:#FFA726:#FF9800>Ваши координаты:</gradient>
<gradient:#87CEEB:#4682B4>X:</gradient> <white>{x}</white>
<gradient:#87CEEB:#4682B4>Y:</gradient> <white>{y}</white>
<gradient:#87CEEB:#4682B4>Z:</gradient> <white>{z}</white>
<gradient:#87CEEB:#4682B4>Мир:</gradient> <white>{world}</white>
aliases: ["координаты", "pos", "position"]
type: "actionbar"
target: "sender"
time:
message: |
<gradient:#87CEEB:#4682B4>Время на сервере:</gradient> <white>%server_time_24%</white>
<gradient:#87CEEB:#4682B4>Дата:</gradient> <white>%server_date%</white>
<gradient:#87CEEB:#4682B4>Онлайн:</gradient> <white>%server_online%</white> <gray>игроков</gray>
aliases: ["время", "дата"]
type: "chat"
target: "sender"
# ═══════════════════════════════════════════════════════════════════════════════
# АДМИНСКИЕ КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
restart-warning: restart-warning:
permission: "lochat.admin" permission: "lochat.admin"
message: "<red><bold>ВНИМАНИЕ!</bold></red> <yellow>Сервер будет перезагружен через 5 минут!</yellow>" message: |
<gradient:#FF6B6B:#FF4757>⚠ ВНИМАНИЕ! ⚠</gradient>
<gradient:#FFA726:#FF9800>Сервер будет перезагружен через 5 минут!</gradient>
<gray>Сохраните свой прогресс и подготовьтесь к перезагрузке.</gray>
aliases: ["рестарт", "reboot"] aliases: ["рестарт", "reboot"]
type: "title"
target: "all"
maintenance:
permission: "lochat.admin"
message: |
<gradient:#FF6B6B:#FF4757>Сервер переходит в режим технических работ</gradient>
<gray>Ожидаемое время: 30 минут</gray>
aliases: ["тех-работы", "maintenance"]
type: "broadcast" type: "broadcast"
target: "all" target: "all"
# Команда с title # ═══════════════════════════════════════════════════════════════════════════════
# VIP КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
vip-info:
permission: "lochat.vip"
message: |
<gradient:#FFD700:#FFA500>═══════ VIP Привилегии ═══════</gradient>
<white>•</white> <gray>Цветной ник и префикс</gray>
<white>•</white> <gray>Приоритет входа на сервер</gray>
<white>•</white> <gray>Дополнительные команды</gray>
<white>•</white> <gray>Больше возможностей в чате</gray>
<gradient:#6BCB77:#4ECDC4>Спасибо за поддержку сервера!</gradient>
type: "chat"
target: "permission:lochat.vip"
# ═══════════════════════════════════════════════════════════════════════════════
# РАЗВЛЕКАТЕЛЬНЫЕ КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
welcome: welcome:
message: "Добро пожаловать!" message: |
aliases: ["привет"] <gradient:#FFD700:#FFA500>Добро пожаловать на сервер!</gradient>
<gradient:#87CEEB:#4682B4>Игрок {player} присоединился к игре</gradient>
aliases: ["привет", "hello"]
type: "title" type: "title"
target: "sender" target: "sender"
# Команда с actionbar # ┌─────────────────────────────────────────────────────────────────────────────┐
coords: # │ ПЛЕЙСХОЛДЕРЫ │
message: "Ваши координаты: {x}, {y}, {z}" # └─────────────────────────────────────────────────────────────────────────────┘
aliases: ["координаты", "pos"]
type: "actionbar" # Доступные плейсхолдеры в сообщениях:
target: "sender" # {player} - имя игрока
# {x}, {y}, {z} - координаты игрока
# {world} - название мира
# {arg0}, {arg1}, {arg2} - аргументы команды (нумерация с 0)
# {args} - все аргументы через пробел
#
# Также поддерживаются все плейсхолдеры PlaceholderAPI:
# %player_name% - имя игрока
# %server_online% - количество игроков онлайн
# %server_time_24% - время в формате 24 часа
# %server_date% - текущая дата
# И многие другие...

View file

@ -1,385 +1,281 @@
# LoChat - Смайлики и стикеры # ╔══════════════════════════════════════════════════════════════════════════════╗
# Автор: loki # ║ LoChat Emojis ║
# # ║ Смайлики для чата ║
# Формат: "триггер": "замена" # ║ Версия: 1.5.5-1.20.1 ║
# Игроки пишут триггер, он заменяется на символ # ╚══════════════════════════════════════════════════════════════════════════════╝
#
# Права:
# - chat.emoji.use — использование смайликов
# - chat.emoji.* — все смайлики
# - chat.emoji.hearts — только категория hearts
# - chat.emoji.custom — кастомные смайлики
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# НАСТРОЙКИ # │ ЭМОЦИИ И ЛИЦА │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
settings:
enabled: true
# Требовать право chat.emoji.use
require-permission: false
# ═══════════════════════════════════════════ emojis:
# ЛИЦА И ЭМОЦИИ # Основные эмоции
# ═══════════════════════════════════════════ ":)": "😊"
faces: ":(": "😢"
":)": "☺"
":D": "😃" ":D": "😃"
":(": "☹"
";)": "😉" ";)": "😉"
":P": "😛" ":P": "😛"
":O": "😮" ":o": "😮"
"XD": "😆" ":|": "😐"
":/": "😕" ":/": "😕"
":*": "😘" ":*": "😘"
"^_^": "😊" "<3": "❤️"
"-_-": "😑" "</3": "💔"
">:(": "😠"
":3": "😺" # Расширенные эмоции
":'(": "😢" ":smile:": "😊"
":')": "😂"
"o_o": "😳"
"O_O": "😱"
":thinking:": "🤔"
":cool:": "😎"
":angry:": "😡"
":sad:": "😢" ":sad:": "😢"
":happy:": "😊" ":happy:": "😃"
":laugh:": "😂" ":wink:": "😉"
":cry:": "😭" ":tongue:": "😛"
":sleep:": "😴" ":surprised:": "😮"
":sick:": "🤢" ":neutral:": "😐"
":dead:": "💀" ":confused:": "😕"
":kiss:": "😘"
# ═══════════════════════════════════════════ ":love:": "❤️"
# СЕРДЦА И ЛЮБОВЬ
# ═══════════════════════════════════════════
hearts:
"<3": "❤"
":heart:": "❤"
":red_heart:": "❤"
":blue_heart:": "💙"
":green_heart:": "💚"
":yellow_heart:": "💛"
":purple_heart:": "💜"
":black_heart:": "🖤"
":white_heart:": "🤍"
":orange_heart:": "🧡"
":broken_heart:": "💔" ":broken_heart:": "💔"
":two_hearts:": "💕" ":angry:": "😠"
":sparkling_heart:": "💖" ":rage:": "😡"
":heartbeat:": "💓" ":cry:": "😭"
":heartpulse:": "💗" ":laugh:": "😂"
":love:": "💕" ":joy:": "😂"
":kiss:": "💋" ":rofl:": "🤣"
":cool:": "😎"
":nerd:": "🤓"
":thinking:": "🤔"
":sleepy:": "😴"
":sick:": "🤒"
":dizzy:": "😵"
":crazy:": "🤪"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ЖЕСТЫ И РУКИ # │ ЖЕСТЫ И ДЕЙСТВИЯ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
gestures:
# Жесты
":thumbsup:": "👍" ":thumbsup:": "👍"
":+1:": "👍"
":thumbsdown:": "👎" ":thumbsdown:": "👎"
":-1:": "👎"
":clap:": "👏"
":wave:": "👋"
":ok:": "👌" ":ok:": "👌"
":ok_hand:": "👌" ":peace:": "✌️"
":fist:": "✊" ":fist:": "✊"
":punch:": "👊" ":wave:": "👋"
":peace:": "✌" ":clap:": "👏"
":v:": "✌"
":muscle:": "💪"
":strong:": "💪"
":pray:": "🙏" ":pray:": "🙏"
":hands:": "🙌" ":muscle:": "💪"
":point_up:": "☝"
":point_down:": "👇"
":point_left:": "👈"
":point_right:": "👉" ":point_right:": "👉"
":middle_finger:": "🖕" ":point_left:": "👈"
":call:": "🤙" ":point_up:": "👆"
":point_down:": "👇"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ПРИРОДА И ПОГОДА # │ ПРИРОДА И ПОГОДА │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
nature:
":fire:": "🔥" # Природа
":flame:": "🔥" ":sun:": "☀️"
":zap:": "⚡"
":lightning:": "⚡"
":boom:": "💥"
":explosion:": "💥"
":sparkles:": "✨"
":stars:": "✨"
":snow:": "❄"
":snowflake:": "❄"
":cloud:": "☁"
":sun:": "☀"
":sunny:": "☀"
":moon:": "🌙" ":moon:": "🌙"
":crescent_moon:": "🌙" ":star:": "⭐"
":full_moon:": "🌕" ":cloud:": "☁️"
":rainbow:": "🌈" ":rain:": "🌧️"
":snow:": "❄️"
":fire:": "🔥"
":water:": "💧" ":water:": "💧"
":drop:": "💧"
":ocean:": "🌊"
":wind:": "💨"
":tornado:": "🌪"
":leaf:": "🍃"
":tree:": "🌳" ":tree:": "🌳"
":flower:": "🌸" ":flower:": "🌸"
":rose:": "🌹" ":rose:": "🌹"
":cactus:": "🌵" ":leaf:": "🍃"
":rainbow:": "🌈"
":lightning:": "⚡"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ЗВЁЗДЫ И СИМВОЛЫ # │ ЖИВОТНЫЕ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
symbols:
":star:": "⭐"
":star2:": "🌟"
":glowing_star:": "🌟"
":dizzy:": "💫"
":sparkle:": "❇"
":skull:": "💀"
":ghost:": "👻"
":alien:": "👽"
":robot:": "🤖"
":poop:": "💩"
":100:": "💯"
":gem:": "💎"
":diamond:": "💎"
":money:": "💰"
":dollar:": "💵"
":coin:": "🪙"
":gift:": "🎁"
":balloon:": "🎈"
":party:": "🎉"
":tada:": "🎉"
":confetti:": "🎊"
":trophy:": "🏆"
":medal:": "🏅"
":crown:": "👑"
":king:": "👑"
# ═══════════════════════════════════════════ # Животные
# МАЙНКРАФТ ТЕМАТИКА
# ═══════════════════════════════════════════
minecraft:
":sword:": "⚔"
":crossed_swords:": "⚔"
":shield:": "🛡"
":axe:": "🪓"
":pickaxe:": "⛏"
":bow:": "🏹"
":arrow:": "➤"
":bomb:": "💣"
":tnt:": "🧨"
":potion:": "🧪"
":ender:": "🟣"
":nether:": "🔴"
":emerald:": "💚"
":gold:": "🟡"
":iron:": "⬜"
":coal:": "⬛"
":redstone:": "🔴"
":lapis:": "🔵"
":exp:": "🟢"
":xp:": "🟢"
":heart_mc:": "❤"
":hunger:": "🍖"
":armor:": "🛡"
# ═══════════════════════════════════════════
# ЖИВОТНЫЕ
# ═══════════════════════════════════════════
animals:
":cat:": "🐱" ":cat:": "🐱"
":dog:": "🐶" ":dog:": "🐶"
":wolf:": "🐺" ":wolf:": "🐺"
":fox:": "🦊" ":fox:": "🦊"
":pig:": "🐷"
":cow:": "🐮"
":sheep:": "🐑"
":chicken:": "🐔"
":dragon:": "🐉"
":bee:": "🐝"
":fish:": "🐟"
":spider:": "🕷"
":bat:": "🦇"
":rabbit:": "🐰"
":bear:": "🐻" ":bear:": "🐻"
":panda:": "🐼" ":panda:": "🐼"
":monkey:": "🐵" ":pig:": "🐷"
":cow:": "🐄"
":horse:": "🐴" ":horse:": "🐴"
":unicorn:": "🦄" ":sheep:": "🐑"
":snake:": "🐍" ":chicken:": "🐔"
":duck:": "🦆"
":eagle:": "🦅"
":fish:": "🐟"
":shark:": "🦈"
":whale:": "🐋"
":dolphin:": "🐬"
":turtle:": "🐢" ":turtle:": "🐢"
":frog:": "🐸" ":snake:": "🐍"
":bird:": "🐦" ":dragon:": "🐉"
":penguin:": "🐧" ":unicorn:": "🦄"
":owl:": "🦉"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ЕДА И НАПИТКИ # │ ЕДА И НАПИТКИ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
food:
# Еда
":apple:": "🍎" ":apple:": "🍎"
":green_apple:": "🍏" ":banana:": "🍌"
":orange:": "🍊"
":strawberry:": "🍓"
":watermelon:": "🍉"
":grapes:": "🍇"
":cherry:": "🍒"
":peach:": "🍑"
":pineapple:": "🍍"
":bread:": "🍞" ":bread:": "🍞"
":meat:": "🍖" ":cheese:": "🧀"
":steak:": "🥩" ":meat:": "🥩"
":cake:": "🎂"
":cookie:": "🍪"
":pizza:": "🍕" ":pizza:": "🍕"
":hamburger:": "🍔" ":burger:": "🍔"
":fries:": "🍟" ":fries:": "🍟"
":hotdog:": "🌭" ":hotdog:": "🌭"
":taco:": "🌮" ":taco:": "🌮"
":sushi:": "🍣" ":cake:": "🎂"
":ramen:": "🍜" ":cookie:": "🍪"
":egg:": "🥚" ":donut:": "🍩"
":cheese:": "🧀" ":ice_cream:": "🍦"
":milk:": "🥛" ":candy:": "🍬"
":chocolate:": "🍫"
# Напитки
":coffee:": "☕" ":coffee:": "☕"
":tea:": "🍵" ":tea:": "🍵"
":beer:": "🍺" ":beer:": "🍺"
":wine:": "🍷" ":wine:": "🍷"
":cocktail:": "🍹" ":cocktail:": "🍹"
":ice_cream:": "🍦" ":milk:": "🥛"
":donut:": "🍩" ":water:": "💧"
":candy:": "🍬"
":chocolate:": "🍫"
":watermelon:": "🍉"
":banana:": "🍌"
":carrot:": "🥕"
":corn:": "🌽"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ИГРОВЫЕ И ИНТЕРФЕЙС # │ ИГРЫ И РАЗВЛЕЧЕНИЯ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
gaming:
# Игры
":game:": "🎮" ":game:": "🎮"
":controller:": "🎮"
":joystick:": "🕹"
":dice:": "🎲" ":dice:": "🎲"
":chess:": "♟" ":cards:": "🃏"
":target:": "🎯" ":chess:": "♟️"
":flag:": "🚩" ":football:": "⚽"
":checkered_flag:": "🏁" ":basketball:": "🏀"
":warning:": "⚠" ":tennis:": "🎾"
":no_entry:": "⛔" ":bowling:": "🎳"
":stop:": "🛑" ":dart:": "🎯"
":check:": "✓" ":trophy:": "🏆"
":checkmark:": "✔" ":medal:": "🏅"
":x:": "✗" ":crown:": "👑"
":cross:": "✖"
":question:": "❓"
":exclamation:": "❗"
":zzz:": "💤"
":bulb:": "💡"
":idea:": "💡"
":bell:": "🔔"
":mute:": "🔇"
":speaker:": "🔊"
":mega:": "📢"
":mic:": "🎤"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# СТРЕЛКИ И НАПРАВЛЕНИЯ # │ ТРАНСПОРТ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
arrows:
":arrow_up:": "↑"
":arrow_down:": "↓"
":arrow_left:": "←"
":arrow_right:": "→"
":arrow_up_right:": "↗"
":arrow_up_left:": "↖"
":arrow_down_right:": "↘"
":arrow_down_left:": "↙"
":arrows_lr:": "↔"
":arrows_ud:": "↕"
":return:": "↩"
":redo:": "↪"
":refresh:": "🔄"
":infinity:": "∞"
# ═══════════════════════════════════════════ # Транспорт
# МУЗЫКА И ИСКУССТВО ":car:": "🚗"
# ═══════════════════════════════════════════ ":bus:": "🚌"
music: ":truck:": "🚚"
":note:": "♪" ":bike:": "🚲"
":notes:": "♫" ":motorcycle:": "🏍️"
":music:": "🎵" ":plane:": "✈️"
":musical_note:": "🎶" ":helicopter:": "🚁"
":headphones:": "🎧" ":rocket:": "🚀"
":guitar:": "🎸" ":ship:": "🚢"
":piano:": "🎹" ":boat:": "⛵"
":drum:": "🥁" ":train:": "🚂"
":violin:": "🎻"
":art:": "🎨"
":palette:": "🎨"
":camera:": "📷"
":movie:": "🎬"
":tv:": "📺"
":radio:": "📻"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# РАЗНОЕ # │ ПРЕДМЕТЫ И СИМВОЛЫ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
misc:
# Предметы
":sword:": "⚔️"
":shield:": "🛡️"
":bow:": "🏹"
":hammer:": "🔨"
":pickaxe:": "⛏️"
":axe:": "🪓"
":shovel:": "🗡️"
":key:": "🔑"
":lock:": "🔒" ":lock:": "🔒"
":unlock:": "🔓" ":unlock:": "🔓"
":key:": "🔑" ":gem:": "💎"
":hourglass:": "⏳" ":diamond:": "💎"
":timer:": "⏱" ":gold:": "🥇"
":clock:": "🕐" ":silver:": "🥈"
":calendar:": "📅" ":bronze:": "🥉"
":pin:": "📌" ":coin:": "🪙"
":paperclip:": "📎" ":money:": "💰"
":scissors:": "✂" ":gift:": "🎁"
":pencil:": "✏" ":balloon:": "🎈"
":pen:": "🖊" ":party:": "🎉"
":book:": "📖" ":confetti:": "🎊"
":scroll:": "📜" ":fireworks:": "🎆"
":mail:": "📧"
":envelope:": "✉"
":phone:": "📱"
":computer:": "💻"
":keyboard:": "⌨"
":mouse:": "🖱"
":trash:": "🗑"
":tools:": "🛠"
":wrench:": "🔧"
":hammer:": "🔨"
":gear:": "⚙"
":link:": "🔗"
":magnet:": "🧲"
":battery:": "🔋"
":plug:": "🔌"
# ═══════════════════════════════════════════ # Символы
# КАСТОМНЫЕ (добавляй свои) ":check:": "✅"
# ═══════════════════════════════════════════ ":cross:": "❌"
custom: ":warning:": "⚠️"
# Примеры кастомных смайликов ":info:": "ℹ️"
":server:": "🖥" ":question:": "❓"
":admin:": "👨‍💻" ":exclamation:": "❗"
":mod:": "🛡" ":plus:": "➕"
":vip:": "⭐" ":minus:": "➖"
":donate:": "💎" ":multiply:": "✖️"
":online:": "🟢" ":divide:": "➗"
":offline:": "🔴" ":arrow_up:": "⬆️"
":afk:": "💤" ":arrow_down:": "⬇️"
":gg:": "🏆" ":arrow_left:": "⬅️"
":ez:": "😎" ":arrow_right:": "➡️"
":rip:": "⚰" ":100:": "💯"
":f:": "🇫" ":infinity:": "♾️"
":pog:": "😲"
":kek:": "😂" # ┌─────────────────────────────────────────────────────────────────────────────┐
":sus:": "🤨" # │ MINECRAFT СПЕЦИФИЧНЫЕ │
":bruh:": "😐" # └─────────────────────────────────────────────────────────────────────────────┘
":based:": "💪"
":cringe:": "😬" # Minecraft блоки и предметы
":ratio:": "📉" ":creeper:": "💥"
":w:": "🏆" ":tnt:": "🧨"
":l:": "📉" ":redstone:": "🔴"
":emerald:": "💚"
":iron:": "⚪"
":coal:": "⚫"
":wood:": "🟤"
":stone:": "🗿"
":dirt:": "🟫"
":grass:": "🟩"
":sand:": "🟨"
":water_bucket:": "🪣"
":lava_bucket:": "🔥"
":bed:": "🛏️"
":chest:": "📦"
":furnace:": "🔥"
":crafting:": "🔧"
":enchant:": "✨"
":potion:": "🧪"
":book:": "📚"
":map:": "🗺️"
":compass:": "🧭"
":clock:": "🕐"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГОЛОВЫ ИГРОКОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Примеры использования голов игроков:
# :head_Steve: - показать голову игрока Steve
# @head Notch - показать интерактивную голову игрока Notch
#
# Требуется право: lochat.heademoji.use
head_examples:
usage: |
<gradient:#9370DB:#8A2BE2>═══════ Головы игроков ═══════</gradient>
<gradient:#87CEEB:#4682B4>:head_nickname:</gradient> <gray>- показать голову игрока</gray>
<gradient:#87CEEB:#4682B4>@head nickname</gradient> <gray>- интерактивная голова</gray>
<gray>Требуется право:</gray> <white>lochat.heademoji.use</white>

View file

@ -1,68 +1,141 @@
# LoChat Gradient Module Configuration # ╔══════════════════════════════════════════════════════════════════════════════╗
# Модуль градиентных ников (интегрированный LoPreff) # ║ LoChat Gradient Config ║
# ║ Настройки градиентных ников ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# Включить/выключить модуль # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОСНОВНЫЕ НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Включить градиентные ники
enabled: true enabled: true
# Тип хранения данных: file или sqlite
storage-type: "file"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ ЦВЕТОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Минимальное количество цветов в градиенте
min-colors: 1
# Максимальное количество цветов в градиенте # Максимальное количество цветов в градиенте
max-colors: 7 max-colors: 7
# Минимальное количество цветов
min-colors: 1
# Цена за каждый цвет (PlayerPoints) # Цена за каждый цвет (PlayerPoints)
price-per-color: 50 price-per-color: 50
# Цена за префикс # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ ПРЕФИКСОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Цена за префикс (PlayerPoints)
prefix-price: 500 prefix-price: 500
# Покупка префикса один раз (потом бесплатно) # Одноразовая покупка префикса (true) или за каждое изменение (false)
prefix-one-time-purchase: true prefix-one-time-purchase: true
# Кулдаун на смену цвета (секунды) # Максимальная длина префикса (символы)
max-prefix-length: 16
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КУЛДАУНЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Кулдаун на изменение цвета (секунды)
color-cooldown: 60 color-cooldown: 60
# Кулдаун на смену префикса (секунды) # Кулдаун на изменение префикса (секунды)
prefix-cooldown: 300 prefix-cooldown: 120
# Максимальная длина префикса # ┌─────────────────────────────────────────────────────────────────────────────┐
max-prefix-length: 7 # │ ИНТЕГРАЦИИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Формат префикса ({prefix} - сам префикс) # Интеграция с LuckPerms
prefix-format: "[{prefix}] " luckperms:
# Включить интеграцию
enabled: true
# Приоритет префикса в LuckPerms
prefix-priority: 100
# Обновлять префикс в LuckPerms при изменении
update-prefix: true
# Применять градиент на префикс # Интеграция с PlayerPoints
gradient-on-prefix: true playerpoints:
# Включить интеграцию (покупки за поинты)
enabled: true
# Показывать баланс в GUI
show-balance: true
# Применять градиент на LuckPerms префикс (если нет кастомного) # ┌─────────────────────────────────────────────────────────────────────────────┐
gradient-on-luckperms-prefix: true # │ ПРЕДУСТАНОВКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Единый градиент на префикс + ник # Предустановленные градиенты
continuous-gradient: true presets:
fire: ["#FF4500", "#FF6347", "#FFD700"]
ocean: ["#00CED1", "#1E90FF", "#4169E1"]
forest: ["#228B22", "#32CD32", "#90EE90"]
sunset: ["#FF69B4", "#FF1493", "#DC143C"]
rainbow: ["#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#9400D3"]
ice: ["#B0E0E6", "#87CEEB", "#4682B4"]
gold: ["#FFD700", "#FFA500", "#FF8C00"]
purple: ["#9370DB", "#8A2BE2", "#4B0082"]
pink: ["#FFB6C1", "#FF69B4", "#FF1493"]
green: ["#00FF7F", "#00FA9A", "#98FB98"]
# Использовать &#RRGGBB формат (true) или <#RRGGBB> (false) # ┌─────────────────────────────────────────────────────────────────────────────┐
use-legacy-rgb-format: false # │ GUI НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Отображение над игроком gui:
display: # Название GUI подтверждения
# Обновлять display name игрока (показывает префикс+ник над головой) confirm-title: "<gradient:#FFD700:#FFA500>Подтверждение покупки</gradient>"
update-display-name: true
# Обновлять tab list # Размер GUI (9, 18, 27, 36, 45, 54)
update-tab-list: true size: 27
# Предметы в GUI
items:
confirm:
material: "GREEN_WOOL"
name: "<gradient:#6BCB77:#4ECDC4>✓ Подтвердить</gradient>"
lore:
- "<gray>Нажмите для подтверждения"
- "<gray>покупки градиента"
cancel:
material: "RED_WOOL"
name: "<gradient:#FF6B6B:#FF4757>✗ Отменить</gradient>"
lore:
- "<gray>Нажмите для отмены"
- "<gray>покупки"
info:
material: "PAPER"
name: "<gradient:#FFA726:#FF9800>Информация</gradient>"
lore:
- "<gray>Цена: <yellow>{price} поинтов</yellow>"
- "<gray>Цвета: <white>{colors}</white>"
- ""
- "<gray>Ваш баланс: <yellow>{balance}</yellow>"
# Тип хранилища: YAML или SQLITE # ┌─────────────────────────────────────────────────────────────────────────────┐
storage-type: YAML # │ РАЗРЕШЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Файл SQLite базы данных # Автоматические разрешения для групп
sqlite-file: gradient-data.db permissions:
# Группы, которые получают бесплатные градиенты
# Чёрный список префиксов (нельзя использовать) free-groups:
prefix-blacklist: - "vip"
- admin - "premium"
- owner - "admin"
- moder
- helper # Группы, которые могут использовать любые цвета
- staff unlimited-colors:
- модер - "admin"
- админ - "owner"
- хелпер

View file

@ -1,57 +1,156 @@
# LoChat Gradient Module Messages # ╔══════════════════════════════════════════════════════════════════════════════╗
# Сообщения модуля градиентных ников # ║ LoChat Gradient Messages ║
# ║ Сообщения градиентного модуля ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# Общие # ┌─────────────────────────────────────────────────────────────────────────────┐
only-player: "&#04CADFЭта команда только для игроков!" # │ ОСНОВНЫЕ СООБЩЕНИЯ │
no-permission: "&#04CADFУ вас нет прав на это действие!" # └─────────────────────────────────────────────────────────────────────────────┘
player-not-found: "&#04CADFИгрок не найден!"
reload-success: "&#04CADFКонфигурация градиентов перезагружена!"
cooldown: "&#04CADFПодождите ещё {time} секунд!"
# Цвета # Префикс градиентного модуля
color-help: | prefix: "<gradient:#9370DB:#8A2BE2>[Gradient]</gradient>"
&#04CADF=== Команда /color ===
&#04CADF/color <цвет1> [цвет2] ... &#808080— установить градиент
&#04CADF/color on &#808080— включить цвет
&#04CADF/color off &#808080— выключить цвет
&#04CADF/color reset &#808080— сбросить цвет
&#04CADF/color copy <игрок> &#808080— скопировать цвет
&#808080Пример: /color #FF0000 #00FF00 #0000FF
color-enabled: "&#04CADFЦвет ника включён!"
color-disabled: "&#04CADFЦвет ника выключен!"
color-reset: "&#04CADFЦвет ника сброшен!"
color-no-colors: "&#04CADFУ вас нет установленных цветов!"
color-success: "&#04CADFЦвет успешно установлен! Списано: {price} PP"
color-copy-usage: "&#04CADFИспользование: /color copy <игрок>"
color-copy-no-colors: "&#04CADFУ игрока {player} нет цветов!"
invalid-color: "&#04CADFНеверный формат цвета: {color}. Используйте #RRGGBB"
too-many-colors: "&#04CADFМаксимум {max} цветов!"
not-enough-colors: "&#04CADFМинимум {min} цветов!"
not-enough-points-color: "&#04CADFНедостаточно поинтов! Нужно: {price} PP"
# Префикс # ┌─────────────────────────────────────────────────────────────────────────────┐
prefix-help: | # │ КОМАНДА /color │
&#04CADF=== Команда /prefix === # └─────────────────────────────────────────────────────────────────────────────┘
&#04CADF/prefix <текст> &#808080— установить префикс
&#04CADF/prefix on &#808080— включить префикс
&#04CADF/prefix off &#808080— выключить префикс
&#04CADF/prefix reset &#808080— сбросить префикс
prefix-enabled: "&#04CADFПрефикс включён!"
prefix-disabled: "&#04CADFПрефикс выключен!"
prefix-reset-success: "&#04CADFПрефикс сброшен!"
prefix-no-prefix: "&#04CADFУ вас нет установленного префикса!"
prefix-success: "&#04CADFПрефикс успешно установлен! Списано: {price} PP"
prefix-success-free: "&#04CADFПрефикс успешно изменён!"
prefix-no-colors: "&#04CADFПрефикс не может содержать цветовые коды!"
prefix-invalid-chars: "&#04CADFПрефикс содержит недопустимые символы!"
prefix-blacklisted: "&#04CADFЭтот префикс запрещён!"
prefix-too-long: "&#04CADFПрефикс слишком длинный! Максимум: {max} символов"
not-enough-points-prefix: "&#04CADFНедостаточно поинтов! Нужно: {price} PP"
# Админ информация color:
info-header: "&#04CADF=== Информация об игроке {player} ===" # Успешные действия
info-prefix: "&#808080Префикс: &f{prefix}" set: "<gradient:#6BCB77:#4ECDC4>Градиент установлен!</gradient>"
info-prefix-enabled: "&#808080Префикс включён: &f{enabled}" enabled: "<gradient:#6BCB77:#4ECDC4>Градиентный ник включен</gradient>"
info-colors: "&#808080Цвета: &f{colors}" disabled: "<gradient:#FF6B6B:#FF4757>Градиентный ник отключен</gradient>"
info-color-enabled: "&#808080Цвет включён: &f{enabled}" reset: "<gradient:#FFA726:#FF9800>Градиент сброшен</gradient>"
info-prefix-purchased: "&#808080Префикс куплен: &f{purchased}" copied: "<gradient:#6BCB77:#4ECDC4>Градиент скопирован с игрока {player}</gradient>"
# Ошибки
invalid-hex: "<gradient:#FF6B6B:#FF4757>Неверный HEX цвет: {color}</gradient>"
too-many-colors: "<gradient:#FF6B6B:#FF4757>Слишком много цветов! Максимум: {max}</gradient>"
too-few-colors: "<gradient:#FF6B6B:#FF4757>Слишком мало цветов! Минимум: {min}</gradient>"
no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав на использование градиентов</gradient>"
cooldown: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед изменением цвета</gradient>"
not-enough-points: "<gradient:#FF6B6B:#FF4757>Недостаточно поинтов! Нужно: {price}, у вас: {balance}</gradient>"
player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
no-gradient: "<gradient:#FFA726:#FF9800>У игрока нет градиента для копирования</gradient>"
# Помощь
help:
- "<gradient:#FFD700:#FFA500>═══════ Команды градиента ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>/color <hex1> [hex2] ...</gradient> <gray>- установить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color on/off</gradient> <gray>- включить/выключить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color reset</gradient> <gray>- сбросить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color copy <игрок></gradient> <gray>- скопировать градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color preset <название></gradient> <gray>- использовать предустановку</gray>"
- ""
- "<gradient:#FFA726:#FF9800>Предустановки:</gradient> <white>fire, ocean, forest, sunset, rainbow, ice, gold, purple, pink, green</white>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КОМАНДА /prefix │
# └─────────────────────────────────────────────────────────────────────────────┘
prefix:
# Успешные действия
set: "<gradient:#6BCB77:#4ECDC4>Префикс установлен!</gradient>"
enabled: "<gradient:#6BCB77:#4ECDC4>Префикс включен</gradient>"
disabled: "<gradient:#FF6B6B:#FF4757>Префикс отключен</gradient>"
reset: "<gradient:#FFA726:#FF9800>Префикс сброшен</gradient>"
# Ошибки
too-long: "<gradient:#FF6B6B:#FF4757>Префикс слишком длинный! Максимум: {max} символов</gradient>"
no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав на использование префиксов</gradient>"
cooldown: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед изменением префикса</gradient>"
not-enough-points: "<gradient:#FF6B6B:#FF4757>Недостаточно поинтов! Нужно: {price}, у вас: {balance}</gradient>"
# Помощь
help:
- "<gradient:#FFD700:#FFA500>═══════ Команды префикса ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>/prefix <текст></gradient> <gray>- установить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/prefix on/off</gradient> <gray>- включить/выключить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/prefix reset</gradient> <gray>- сбросить префикс</gray>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АДМИНСКИЕ КОМАНДЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
admin:
# Успешные действия
reloaded: "<gradient:#6BCB77:#4ECDC4>Конфигурация градиентов перезагружена</gradient>"
color-set: "<gradient:#6BCB77:#4ECDC4>Градиент установлен игроку {player}</gradient>"
prefix-set: "<gradient:#6BCB77:#4ECDC4>Префикс установлен игроку {player}</gradient>"
color-enabled: "<gradient:#6BCB77:#4ECDC4>Градиент включен для {player}</gradient>"
color-disabled: "<gradient:#FF6B6B:#FF4757>Градиент отключен для {player}</gradient>"
prefix-enabled: "<gradient:#6BCB77:#4ECDC4>Префикс включен для {player}</gradient>"
prefix-disabled: "<gradient:#FF6B6B:#FF4757>Префикс отключен для {player}</gradient>"
color-reset: "<gradient:#FFA726:#FF9800>Градиент сброшен для {player}</gradient>"
prefix-reset: "<gradient:#FFA726:#FF9800>Префикс сброшен для {player}</gradient>"
updated-all: "<gradient:#6BCB77:#4ECDC4>Обновлены все игроки ({count})</gradient>"
# Информация об игроке
info:
- "<gradient:#FFD700:#FFA500>═══════ Информация о {player} ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>Градиент:</gradient> <white>{gradient_status}</white>"
- "<gradient:#87CEEB:#4682B4>Цвета:</gradient> <white>{colors}</white>"
- "<gradient:#87CEEB:#4682B4>Префикс:</gradient> <white>{prefix_status}</white>"
- "<gradient:#87CEEB:#4682B4>Текст префикса:</gradient> <white>{prefix_text}</white>"
- "<gradient:#87CEEB:#4682B4>Отображаемое имя:</gradient> {display_name}"
# Ошибки
player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
invalid-hex: "<gradient:#FF6B6B:#FF4757>Неверный HEX цвет: {color}</gradient>"
# Помощь
help:
- "<gradient:#FFD700:#FFA500>═══════ Админские команды ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>/aprefix reload</gradient> <gray>- перезагрузить конфиг</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix info <игрок></gradient> <gray>- информация об игроке</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix setcolor <игрок> <цвета></gradient> <gray>- установить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix setprefix <игрок> <текст></gradient> <gray>- установить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix coloron/coloroff <игрок></gradient> <gray>- вкл/выкл градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix prefixon/prefixoff <игрок></gradient> <gray>- вкл/выкл префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix resetcolor <игрок></gradient> <gray>- сбросить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix resetprefix <игрок></gradient> <gray>- сбросить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix updateall</gradient> <gray>- обновить всех игроков</gray>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ GUI СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
gui:
# Заголовки
confirm-title: "<gradient:#FFD700:#FFA500>Подтверждение покупки</gradient>"
# Кнопки
confirm-button: "<gradient:#6BCB77:#4ECDC4>✓ Подтвердить покупку</gradient>"
cancel-button: "<gradient:#FF6B6B:#FF4757>✗ Отменить</gradient>"
# Описания
confirm-lore:
- "<gray>Цена: <yellow>{price} поинтов</yellow>"
- "<gray>Цвета: <white>{colors}</white>"
- ""
- "<gray>Ваш баланс: <yellow>{balance}</yellow>"
- ""
- "<gradient:#6BCB77:#4ECDC4>Нажмите для подтверждения</gradient>"
cancel-lore:
- "<gradient:#FF6B6B:#FF4757>Нажмите для отмены</gradient>"
# Результаты
purchase-success: "<gradient:#6BCB77:#4ECDC4>Градиент успешно куплен!</gradient>"
purchase-cancelled: "<gradient:#FFA726:#FF9800>Покупка отменена</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОБЩИЕ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
general:
# Статусы
enabled: "<gradient:#6BCB77:#4ECDC4>Включено</gradient>"
disabled: "<gradient:#FF6B6B:#FF4757>Отключено</gradient>"
none: "<gray>Нет</gray>"
# Единицы времени
seconds: "сек"
minutes: "мин"
hours: "ч"
days: "д"

View file

@ -1,70 +1,133 @@
prefix: "&#04CADF[LoChat]" # ╔══════════════════════════════════════════════════════════════════════════════╗
# ║ LoChat Messages ║
# ║ Сообщения плагина LoChat ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОСНОВНЫЕ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Префикс плагина
prefix: "<gradient:#00D4FF:#0099CC>[LoChat]</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГЛОБАЛЬНЫЙ ЧАТ │
# └─────────────────────────────────────────────────────────────────────────────┘
global: global:
disabled: "&#04CADFГлобальный чат отключен" disabled: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
toggled-on: "&#04CADFГлобальный чат включен" toggled-on: "<gradient:#6BCB77:#4ECDC4>Глобальный чат включен</gradient>"
toggled-off: "&#04CADFГлобальный чат отключен" toggled-off: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ЛОКАЛЬНЫЙ ЧАТ │
# └─────────────────────────────────────────────────────────────────────────────┘
local: local:
no-players: "&#04CADFРядом нет игроков" no-players: "<gradient:#FFA726:#FF9800>Рядом нет игроков</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ЛИЧНЫЕ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
pm: pm:
# Форматы личных сообщений # Форматы личных сообщений
# {sender} - ник отправителя, {receiver} - ник получателя # {sender} - ник отправителя, {receiver} - ник получателя
# {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом # {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом
# {message} - текст сообщения # {message} - текст сообщения
format-sent: "&#808080[PM] Ты → {receiver_display}&#808080: {message}" format-sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> {receiver_display}<gray>:</gray> {message}"
format-received: "&#808080[PM] {sender_display}&#808080 → Ты: {message}" format-received: "<gray>[PM]</gray> {sender_display} <gray>→</gray> <gradient:#87CEEB:#4682B4>Ты</gradient><gray>:</gray> {message}"
# Использовать градиентные ники в PM # Использовать градиентные ники в PM
use-gradient-names: true use-gradient-names: true
# Старые форматы (для совместимости) # Старые форматы (для совместимости)
sent: "&#808080[PM] Ты → {player}: {message}" sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> <white>{player}</white><gray>:</gray> {message}"
received: "&#808080[PM] {player} → Ты: {message}" received: "<gray>[PM]</gray> <white>{player}</white> <gray>→</gray> <gradient:#87CEEB:#4682B4>Ты</gradient><gray>:</gray> {message}"
no-reply: "&#04CADFНекому ответить"
ignored: "&#04CADFЭтот игрок вас игнорирует" # Ошибки PM
player-offline: "&#04CADFИгрок не в сети" no-reply: "<gradient:#FF6B6B:#FF4757>Некому ответить</gradient>"
self: "&#04CADFНельзя писать самому себе" ignored: "<gradient:#FF6B6B:#FF4757>Этот игрок вас игнорирует</gradient>"
player-offline: "<gradient:#FF6B6B:#FF4757>Игрок не в сети</gradient>"
self: "<gradient:#FF6B6B:#FF4757>Нельзя писать самому себе</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ИГНОРИРОВАНИЕ │
# └─────────────────────────────────────────────────────────────────────────────┘
ignore: ignore:
added: "&#04CADFИгрок {player} добавлен в игнор" added: "<gradient:#6BCB77:#4ECDC4>Игрок {player} добавлен в игнор</gradient>"
removed: "&#04CADFИгрок {player} убран из игнора" removed: "<gradient:#6BCB77:#4ECDC4>Игрок {player} убран из игнора</gradient>"
already-ignored: "&#04CADFИгрок уже в игноре" already-ignored: "<gradient:#FFA726:#FF9800>Игрок уже в игноре</gradient>"
not-ignored: "&#04CADFИгрок не в игноре" not-ignored: "<gradient:#FFA726:#FF9800>Игрок не в игноре</gradient>"
self: "&#04CADFНельзя игнорировать себя" self: "<gradient:#FF6B6B:#FF4757>Нельзя игнорировать себя</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОБЪЯВЛЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
announce: announce:
reloaded: "&#04CADFКонфигурация перезагружена" reloaded: "<gradient:#6BCB77:#4ECDC4>Конфигурация перезагружена</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ШПИОН РЕЖИМ │
# └─────────────────────────────────────────────────────────────────────────────┘
spy: spy:
enabled: "&#04CADFШпион режим включен" enabled: "<gradient:#6BCB77:#4ECDC4>Шпион режим включен</gradient>"
disabled: "&#04CADFШпион режим выключен" disabled: "<gradient:#FF6B6B:#FF4757>Шпион режим выключен</gradient>"
format: "&#808080[SPY] {sender} → {receiver}: {message}" format: "<gray>[SPY]</gray> <gradient:#FFD700:#FFA500>{sender}</gradient> <gray>→</gray> <gradient:#87CEEB:#4682B4>{receiver}</gradient><gray>:</gray> <white>{message}</white>"
chat-format: "&#808080[SPY] {type} {sender}: {message}" chat-format: "<gray>[SPY]</gray> <gradient:#FFA726:#FF9800>{type}</gradient> <gradient:#00FF88:#00CC66>{sender}</gradient><gray>:</gray> <white>{message}</white>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ФИЛЬТР МАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
filter: filter:
blocked: "&#04CADFСообщение заблокировано (мат)" blocked: "<gradient:#FF6B6B:#FF4757>Сообщение заблокировано (недопустимые слова)</gradient>"
warning: "&#04CADFПредупреждение: не используйте мат!" warning: "<gradient:#FFA726:#FF9800>Предупреждение: не используйте недопустимые слова!</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КУЛДАУНЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
cooldown: cooldown:
wait: "&#04CADFПодождите {time} сек перед следующим сообщением" wait: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед следующим сообщением</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АНТИ-СПАМ │
# └─────────────────────────────────────────────────────────────────────────────┘
antispam: antispam:
caps: "&#04CADFСлишком много заглавных букв!" caps: "<gradient:#FF6B6B:#FF4757>Слишком много заглавных букв!</gradient>"
repeat: "&#04CADFНе повторяйте символы!" repeat: "<gradient:#FF6B6B:#FF4757>Не повторяйте символы!</gradient>"
similar: "&#04CADFНе отправляйте одинаковые сообщения!" similar: "<gradient:#FF6B6B:#FF4757>Не отправляйте одинаковые сообщения!</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОЧИСТКА ЧАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
clearchat: clearchat:
cleared: "&#04CADFЧат очищен администратором {player}" cleared: "<gradient:#6BCB77:#4ECDC4>Чат очищен администратором {player}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОШИБКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
errors: errors:
no-permission: "&#04CADFНет прав!" no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав!</gradient>"
player-not-found: "&#04CADFИгрок не найден" player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
invalid-usage: "&#04CADFИспользование: {usage}" invalid-usage: "<gradient:#FFA726:#FF9800>Использование: {usage}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ СИСТЕМА МУТОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
mute: mute:
muted: "&#04CADFИгрок {player} замучен на {time}" muted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} замучен на {time}</gradient>"
unmuted: "&#04CADFИгрок {player} размучен" unmuted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} размучен</gradient>"
already-muted: "&#04CADFИгрок уже замучен" already-muted: "<gradient:#FFA726:#FF9800>Игрок уже замучен</gradient>"
not-muted: "&#04CADFИгрок не замучен" not-muted: "<gradient:#FFA726:#FF9800>Игрок не замучен</gradient>"
you-muted: "&#04CADFВы замучены! Осталось: {time}" you-muted: "<gradient:#FF6B6B:#FF4757>Вы замучены! Осталось: {time}</gradient>"
permanent: "&#04CADFВы замучены навсегда!" permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда!</gradient>"

View file

@ -11,6 +11,7 @@ softdepend:
- PlayerPoints - PlayerPoints
- LuckPerms - LuckPerms
- LibertyBans - LibertyBans
- SkinsRestorer
commands: commands:
g: g:
@ -73,6 +74,12 @@ commands:
permission: chat.clear permission: chat.clear
aliases: [cc, очиститьчат, сдуфксрфе, сс] aliases: [cc, очиститьчат, сдуфксрфе, сс]
clearchatconfig:
description: Configure clear chat message
usage: /clearchatconfig <enable|disable|message|status> [text]
permission: lochat.clearchat.config
aliases: [ccc, настройкаочистки]
lochat: lochat:
description: LoChat admin command description: LoChat admin command
usage: /lochat [reload] usage: /lochat [reload]
@ -219,3 +226,9 @@ permissions:
lochat.mute.dur.perm: lochat.mute.dur.perm:
description: Can mute permanently description: Can mute permanently
default: op default: op
lochat.clearchat.config:
description: Can configure clear chat message
default: op
lochat.heademoji.use:
description: Can use head emojis in chat
default: true

View file

@ -11,6 +11,7 @@ repositories {
maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' } maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' }
maven { url = 'https://repo.rosewooddev.io/repository/public/' } maven { url = 'https://repo.rosewooddev.io/repository/public/' }
maven { url = 'https://jitpack.io' } maven { url = 'https://jitpack.io' }
maven { url = 'https://nexus.skinsrestorer.net/repository/maven-public/' }
} }
dependencies { dependencies {

View file

@ -30,6 +30,8 @@ public final class LoChat extends JavaPlugin {
private GradientModule gradientModule; private GradientModule gradientModule;
private LibertyBansHook libertyBansHook; private LibertyBansHook libertyBansHook;
private MuteManager muteManager; private MuteManager muteManager;
private HeadEmojiManager headEmojiManager;
private com.loki.lochat.integrations.SkinsRestorerHook skinsRestorerHook;
@Override @Override
public void onEnable() { public void onEnable() {
@ -52,6 +54,10 @@ public final class LoChat extends JavaPlugin {
chatManager = new ChatManager(this); chatManager = new ChatManager(this);
autoMessageManager = new AutoMessageManager(this); autoMessageManager = new AutoMessageManager(this);
// Инициализация интеграций
skinsRestorerHook = new com.loki.lochat.integrations.SkinsRestorerHook(this);
headEmojiManager = new com.loki.lochat.managers.HeadEmojiManager(this);
// Инициализация модуля градиентов (интегрированный LoPreff) // Инициализация модуля градиентов (интегрированный LoPreff)
gradientModule = new GradientModule(this); gradientModule = new GradientModule(this);
if (gradientModule.init()) { if (gradientModule.init()) {
@ -130,6 +136,14 @@ public final class LoChat extends JavaPlugin {
MuteBlameCommand muteBlameCommand = new MuteBlameCommand(this); MuteBlameCommand muteBlameCommand = new MuteBlameCommand(this);
getCommand("lmuteblame").setExecutor(muteBlameCommand); getCommand("lmuteblame").setExecutor(muteBlameCommand);
getCommand("lmuteblame").setTabCompleter(muteBlameCommand); getCommand("lmuteblame").setTabCompleter(muteBlameCommand);
// Команда настройки очистки чата
ClearChatConfigCommand clearChatConfigCommand = new ClearChatConfigCommand(this);
getCommand("clearchatconfig").setExecutor(clearChatConfigCommand);
getCommand("clearchatconfig").setTabCompleter(clearChatConfigCommand);
// Внутренняя команда для информации об игроке
getCommand("lochat").setExecutor(new PlayerInfoCommand(this));
} }
public void reload() { public void reload() {
@ -211,4 +225,12 @@ public final class LoChat extends JavaPlugin {
return muteManager; return muteManager;
} }
public HeadEmojiManager getHeadEmojiManager() {
return headEmojiManager;
}
public com.loki.lochat.integrations.SkinsRestorerHook getSkinsRestorerHook() {
return skinsRestorerHook;
}
} }

View file

@ -25,10 +25,11 @@ public class ClearChatCommand implements CommandExecutor {
player.sendMessage(""); player.sendMessage("");
} }
// Уведомление // Уведомление (если включено)
player.sendMessage(ChatFormatter.parse( if (plugin.getConfigManager().isClearChatMessageEnabled()) {
plugin.getMessageConfig().get("clearchat.cleared", "{player}", sender.getName()) String message = plugin.getConfigManager().getClearChatMessage();
)); player.sendMessage(ChatFormatter.parse(message.replace("{player}", sender.getName())));
}
} }
return true; return true;

View file

@ -0,0 +1,89 @@
package com.loki.lochat.commands;
import com.loki.lochat.LoChat;
import com.loki.lochat.utils.ChatFormatter;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.List;
/**
* Команда для настройки сообщения очистки чата
* /clearchatconfig <enable|disable|message> [текст]
*/
public class ClearChatConfigCommand implements CommandExecutor, TabCompleter {
private final LoChat plugin;
public ClearChatConfigCommand(LoChat plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (!sender.hasPermission("lochat.clearchat.config")) {
sender.sendMessage(plugin.getMessageConfig().getComponent("errors.no-permission"));
return true;
}
if (args.length == 0) {
sender.sendMessage(ChatFormatter.parse("&6Использование:"));
sender.sendMessage(ChatFormatter.parse("&e/clearchatconfig enable &7- включить сообщение"));
sender.sendMessage(ChatFormatter.parse("&e/clearchatconfig disable &7- отключить сообщение"));
sender.sendMessage(ChatFormatter.parse("&e/clearchatconfig message <текст> &7- установить сообщение"));
sender.sendMessage(ChatFormatter.parse("&e/clearchatconfig status &7- показать статус"));
return true;
}
String action = args[0].toLowerCase();
switch (action) {
case "enable" -> {
plugin.getConfigManager().setClearChatMessageEnabled(true);
sender.sendMessage(ChatFormatter.parse("&aСообщение очистки чата включено"));
}
case "disable" -> {
plugin.getConfigManager().setClearChatMessageEnabled(false);
sender.sendMessage(ChatFormatter.parse("&cСообщение очистки чата отключено"));
}
case "message" -> {
if (args.length < 2) {
sender.sendMessage(ChatFormatter.parse("&cУкажите текст сообщения!"));
return true;
}
String message = String.join(" ", Arrays.copyOfRange(args, 1, args.length));
plugin.getConfigManager().setClearChatMessage(message);
sender.sendMessage(ChatFormatter.parse("&aСообщение установлено: &f" + message));
}
case "status" -> {
boolean enabled = plugin.getConfigManager().isClearChatMessageEnabled();
String message = plugin.getConfigManager().getClearChatMessage();
sender.sendMessage(ChatFormatter.parse("&6Статус сообщения очистки чата:"));
sender.sendMessage(ChatFormatter.parse("&eВключено: " + (enabled ? "&aДа" : "&cНет")));
sender.sendMessage(ChatFormatter.parse("&eСообщение: &f" + message));
}
default -> {
sender.sendMessage(ChatFormatter.parse("&cНеизвестная команда! Используйте: enable, disable, message, status"));
}
}
return true;
}
@Override
public @Nullable List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
if (args.length == 1) {
return Arrays.asList("enable", "disable", "message", "status").stream()
.filter(s -> s.toLowerCase().startsWith(args[0].toLowerCase()))
.toList();
}
return null;
}
}

View file

@ -0,0 +1,53 @@
package com.loki.lochat.commands;
import com.loki.lochat.LoChat;
import com.loki.lochat.utils.ChatFormatter;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
/**
* Команда для показа информации об игроке (используется при клике на голову)
*/
public class PlayerInfoCommand implements CommandExecutor {
private final LoChat plugin;
public PlayerInfoCommand(LoChat plugin) {
this.plugin = plugin;
}
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (args.length < 2 || !args[0].equals("playerinfo")) {
return false;
}
String targetName = args[1];
Player target = Bukkit.getPlayer(targetName);
if (target == null || !target.isOnline()) {
sender.sendMessage(ChatFormatter.parse("§cИгрок не найден или не в сети"));
return true;
}
// Показываем информацию об игроке
sender.sendMessage(ChatFormatter.parse("§6=== Информация об игроке ==="));
sender.sendMessage(ChatFormatter.parse("§eИмя: §f" + target.getName()));
sender.sendMessage(ChatFormatter.parse("§eОтображаемое имя: §f" + target.getDisplayName()));
sender.sendMessage(ChatFormatter.parse("§eУровень: §f" + target.getLevel()));
sender.sendMessage(ChatFormatter.parse("§eЗдоровье: §f" + Math.round(target.getHealth()) + "/20"));
sender.sendMessage(ChatFormatter.parse("§eМир: §f" + target.getWorld().getName()));
// Если есть градиентный модуль, показываем градиентное имя
if (plugin.getGradientModule() != null) {
String gradientName = plugin.getGradientModule().getFormattedName(target);
sender.sendMessage(ChatFormatter.parse("§eГрадиентное имя: " + gradientName));
}
return true;
}
}

View file

@ -80,6 +80,17 @@ public class ConfigManager {
config.set("automessages.random", false); config.set("automessages.random", false);
} }
if (!config.contains("clearchat.message.enabled")) {
config.set("clearchat.message.enabled", true);
config.set("clearchat.message.text", "&#04CADFЧат очищен администратором {player}");
}
if (!config.contains("head-emoji.enabled")) {
config.set("head-emoji.enabled", true);
config.set("head-emoji.allow-player-heads", true);
config.set("head-emoji.max-heads-per-message", 3);
}
if (!config.contains("lopreff.enabled")) { if (!config.contains("lopreff.enabled")) {
config.set("lopreff.enabled", true); config.set("lopreff.enabled", true);
config.set("lopreff.use-gradient-name", true); config.set("lopreff.use-gradient-name", true);
@ -223,6 +234,25 @@ public class ConfigManager {
public String getFilterReplacement() { public String getFilterReplacement() {
return config.getString("filter.replacement", "***"); return config.getString("filter.replacement", "***");
} }
// Clear chat
public boolean isClearChatMessageEnabled() {
return config.getBoolean("clearchat.message.enabled", true);
}
public void setClearChatMessageEnabled(boolean enabled) {
config.set("clearchat.message.enabled", enabled);
plugin.saveConfig();
}
public String getClearChatMessage() {
return config.getString("clearchat.message.text", "&#04CADFЧат очищен администратором {player}");
}
public void setClearChatMessage(String message) {
config.set("clearchat.message.text", message);
plugin.saveConfig();
}
// Anti-spam // Anti-spam
public boolean isAntiSpamEnabled() { public boolean isAntiSpamEnabled() {

View file

@ -0,0 +1,82 @@
package com.loki.lochat.integrations;
import com.loki.lochat.LoChat;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
import java.lang.reflect.Method;
/**
* Интеграция с SkinsRestorer для получения скинов игроков
* Использует рефлексию для совместимости без прямой зависимости
*/
public class SkinsRestorerHook {
private final LoChat plugin;
private Object skinsAPI;
private Method getSkinDataMethod;
private boolean enabled = false;
public SkinsRestorerHook(LoChat plugin) {
this.plugin = plugin;
init();
}
private void init() {
try {
Plugin skinsPlugin = Bukkit.getPluginManager().getPlugin("SkinsRestorer");
if (skinsPlugin == null || !skinsPlugin.isEnabled()) {
plugin.getLogger().info("SkinsRestorer не найден");
return;
}
// Пытаемся получить API через рефлексию
Class<?> apiClass = Class.forName("net.skinsrestorer.api.SkinsRestorerAPI");
Method getApiMethod = apiClass.getMethod("getApi");
skinsAPI = getApiMethod.invoke(null);
getSkinDataMethod = skinsAPI.getClass().getMethod("getSkinData", String.class);
enabled = true;
plugin.getLogger().info("SkinsRestorer подключен!");
} catch (Exception e) {
plugin.getLogger().info("SkinsRestorer не найден или несовместимая версия");
enabled = false;
}
}
public boolean isEnabled() {
return enabled;
}
/**
* Получает текстуру скина игрока
* @param player игрок
* @return URL текстуры или null
*/
public String getPlayerSkinTexture(Player player) {
if (!enabled) return null;
try {
Object property = getSkinDataMethod.invoke(skinsAPI, player.getName());
if (property != null) {
Method getValueMethod = property.getClass().getMethod("getValue");
return (String) getValueMethod.invoke(property);
}
} catch (Exception e) {
// Игнорируем ошибки получения скина
}
return null;
}
/**
* Получает URL головы игрока для отображения
* @param playerName имя игрока
* @return URL головы
*/
public String getPlayerHeadUrl(String playerName) {
// Используем стандартные сервисы для получения голов
return "https://minotar.net/helm/" + playerName + "/8.png";
}
}

View file

@ -98,6 +98,13 @@ public class ChatListener implements Listener {
// ===== SPY ===== // ===== SPY =====
plugin.getSpyManager().sendToSpies(player, processedMessage, isGlobal); plugin.getSpyManager().sendToSpies(player, processedMessage, isGlobal);
// ===== HEAD EMOJI =====
// Обрабатываем головы игроков, если функция включена
if (plugin.getHeadEmojiManager().isHeadEmojiEnabled() &&
plugin.getHeadEmojiManager().canUseHeadEmoji(player)) {
processedMessage = plugin.getHeadEmojiManager().processHeads(processedMessage, player);
}
// ===== SEND ===== // ===== SEND =====
if (isGlobal) { if (isGlobal) {
plugin.getChatManager().sendGlobalMessage(player, processedMessage); plugin.getChatManager().sendGlobalMessage(player, processedMessage);

View file

@ -0,0 +1,193 @@
package com.loki.lochat.managers;
import com.loki.lochat.LoChat;
import com.loki.lochat.integrations.SkinsRestorerHook;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Менеджер для обработки голов игроков в чате
* Поддерживает рисование головы из смайликов и отправку голов игроков
*/
public class HeadEmojiManager {
private final LoChat plugin;
private final SkinsRestorerHook skinsHook;
// Паттерны для поиска голов игроков
private static final Pattern HEAD_PATTERN = Pattern.compile(":head_([a-zA-Z0-9_]{3,16}):");
private static final Pattern PLAYER_HEAD_PATTERN = Pattern.compile("@head\\s+([a-zA-Z0-9_]{3,16})");
// ASCII арт для головы игрока (8x8 пикселей)
private static final String[] HEAD_TEMPLATE = {
"████████",
"██░░░░██",
"██░██░██",
"██░░░░██",
"██░██░██",
"██░░░░██",
"██████████",
"████████"
};
public HeadEmojiManager(LoChat plugin) {
this.plugin = plugin;
this.skinsHook = new SkinsRestorerHook(plugin);
}
/**
* Обрабатывает сообщение и заменяет головы игроков
*/
public Component processHeads(Component message, Player sender) {
String plainText = net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer.plainText().serialize(message);
// Обрабатываем :head_nickname:
plainText = processHeadEmojis(plainText);
// Обрабатываем @head nickname
plainText = processPlayerHeadCommands(plainText, sender);
return net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer.legacySection().deserialize(plainText);
}
/**
* Обрабатывает :head_nickname: паттерны
*/
private String processHeadEmojis(String message) {
Matcher matcher = HEAD_PATTERN.matcher(message);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
String playerName = matcher.group(1);
Player target = Bukkit.getPlayer(playerName);
if (target != null && target.isOnline()) {
String headEmoji = generateHeadEmoji(target);
matcher.appendReplacement(result, headEmoji);
} else {
// Если игрок не найден, оставляем как есть
matcher.appendReplacement(result, matcher.group(0));
}
}
matcher.appendTail(result);
return result.toString();
}
/**
* Обрабатывает @head nickname команды
*/
private String processPlayerHeadCommands(String message, Player sender) {
Matcher matcher = PLAYER_HEAD_PATTERN.matcher(message);
StringBuffer result = new StringBuffer();
while (matcher.find()) {
String playerName = matcher.group(1);
Player target = Bukkit.getPlayer(playerName);
if (target != null && target.isOnline()) {
String headDisplay = createClickableHead(target, sender);
matcher.appendReplacement(result, headDisplay);
} else {
// Если игрок не найден, показываем ошибку
matcher.appendReplacement(result, "§c[Игрок " + playerName + " не найден]");
}
}
matcher.appendTail(result);
return result.toString();
}
/**
* Генерирует ASCII арт головы игрока
*/
private String generateHeadEmoji(Player player) {
// Получаем доминирующий цвет скина (упрощенная версия)
String skinColor = getSkinColor(player);
String hairColor = getHairColor(player);
StringBuilder head = new StringBuilder();
head.append("§8[§r"); // Начало рамки
// Генерируем упрощенную голову 3x3
head.append(hairColor).append("███§r");
head.append(skinColor).append("█").append("§0█").append(skinColor).append("█§r"); // Глаза
head.append(skinColor).append("███§r");
head.append("§8]§r"); // Конец рамки
return head.toString();
}
/**
* Создает кликабельную голову игрока
*/
private String createClickableHead(Player target, Player sender) {
String headUrl = skinsHook.getPlayerHeadUrl(target.getName());
// Создаем компонент с hover и click событиями
return "§6[§e" + target.getName() + " Head§6]§r";
}
/**
* Получает цвет скина игрока (упрощенная версия)
*/
private String getSkinColor(Player player) {
// В реальной реализации здесь был бы анализ текстуры скина
// Для демонстрации используем случайные цвета
String[] skinColors = {"§f", "§7", "§6", "§c", "§e"};
return skinColors[player.getName().hashCode() % skinColors.length];
}
/**
* Получает цвет волос игрока (упрощенная версия)
*/
private String getHairColor(Player player) {
// В реальной реализации здесь был бы анализ текстуры скина
String[] hairColors = {"§0", "§8", "§6", "§c", "§e", "§a"};
return hairColors[(player.getName().hashCode() + 1) % hairColors.length];
}
/**
* Создает Component с hover эффектом для головы игрока
*/
public Component createHeadComponent(Player target) {
String headUrl = skinsHook.getPlayerHeadUrl(target.getName());
Component headText = Component.text("[" + target.getName() + " Head]")
.color(NamedTextColor.GOLD)
.hoverEvent(HoverEvent.showText(
Component.text("Голова игрока: " + target.getName())
.color(NamedTextColor.YELLOW)
.append(Component.newline())
.append(Component.text("Нажмите, чтобы получить информацию")
.color(NamedTextColor.GRAY))
))
.clickEvent(ClickEvent.runCommand("/lochat playerinfo " + target.getName()));
return headText;
}
/**
* Проверяет, включена ли функция голов игроков
*/
public boolean isHeadEmojiEnabled() {
return plugin.getConfigManager().getBoolean("head-emoji.enabled", true);
}
/**
* Проверяет, может ли игрок использовать головы
*/
public boolean canUseHeadEmoji(Player player) {
return player.hasPermission("lochat.heademoji.use");
}
}

View file

@ -1,74 +1,90 @@
# LoChat - Автосообщения # ╔══════════════════════════════════════════════════════════════════════════════╗
# Автор: loki # ║ LoChat Auto Messages ║
# # ║ Автосообщения чата ║
# Смайлики настраиваются в emojis.yml # ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# ═══════════════════════════════════════════
# НАСТРОЙКИ
# ═══════════════════════════════════════════
settings: settings:
enabled: true # Префикс автосообщений
interval: 300 # Интервал между сообщениями (секунды) prefix: "<gradient:#00D4FF:#0099CC>[INFO]</gradient>"
prefix: "&6[&eINFO&6]&r"
# Режим отправки: # Режим отправки: sequential (по порядку), random (случайно), custom (свой порядок)
# - "sequential" — по порядку (1, 2, 3...)
# - "random" — случайный порядок
# - "custom" — свой порядок (указать в order)
mode: "sequential" mode: "sequential"
# Свой порядок (для mode: custom) # Свой порядок сообщений (только для режима custom)
# Можно указывать названия или номера # Можно указывать номера или названия сообщений
# Пример: "welcome, rules, 3, donate, tips" order: "welcome, rules, discord, website"
order: "welcome, motd, rules, donate, tips, discord"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# ═══════════════════════════════════════════
# СООБЩЕНИЯ
# ═══════════════════════════════════════════
messages: messages:
# Приветствие (однострочное) # Приветственное сообщение
welcome: "&aДобро пожаловать на сервер! &e:star:" welcome:
- "<gradient:#FFD700:#FFA500>Добро пожаловать на наш сервер!</gradient>"
- "<gray>Используйте</gray> <gradient:#87CEEB:#4682B4>/help</gradient> <gray>для получения помощи</gray>"
# MOTD (многострочное) # Правила сервера
motd:
- "&6╔══════════════════════════════════╗"
- "&6║ &e:star: &fДобро пожаловать! &e:star: &6║"
- "&6║ &7Онлайн: &a%online% &7игроков &6║"
- "&6║ &7Сайт: &bexample.com &6║"
- "&6╚══════════════════════════════════╝"
# Правила
rules: rules:
- "&c&l:warning: ПРАВИЛА СЕРВЕРА :warning:" - "<gradient:#FF6B6B:#FF4757>Соблюдайте правила сервера!</gradient>"
- "&71. &fНе гриферить" - "<gray>Подробнее:</gray> <gradient:#87CEEB:#4682B4>/rules</gradient>"
- "&72. &fНе читерить"
- "&73. &fУважать игроков"
- "&aПолные правила: &e/rules"
# Донат # Информация о Discord
discord:
- "<gradient:#7289DA:#5865F2>Присоединяйтесь к нашему Discord!</gradient>"
- "<gray>Ссылка:</gray> <click:open_url:'https://discord.gg/example'><gradient:#87CEEB:#4682B4>discord.gg/example</gradient></click>"
# Веб-сайт
website:
- "<gradient:#00FF88:#00CC66>Посетите наш сайт!</gradient>"
- "<gray>Адрес:</gray> <click:open_url:'https://example.com'><gradient:#87CEEB:#4682B4>example.com</gradient></click>"
# Донат информация
donate: donate:
- "#FFD700&l:gem: ДОНАТ :gem:" - "<gradient:#FFD700:#FFA500>Поддержите сервер!</gradient>"
- "&7Поддержи сервер и получи" - "<gray>Донат:</gray> <click:open_url:'https://donate.example.com'><gradient:#87CEEB:#4682B4>donate.example.com</gradient></click>"
- "&7крутые привилегии!"
- "&eПодробнее: &a/donate"
# Советы # Градиентные ники
tips: gradients:
- "&b:zap: &fСовет дня:" - "<gradient:#9370DB:#8A2BE2>Создайте красивый ник!</gradient>"
- "&7Используй &e/sethome &7чтобы" - "<gray>Команда:</gray> <gradient:#87CEEB:#4682B4>/color</gradient> <gray>для градиентов</gray>"
- "&7сохранить свою локацию!"
# Discord # Чат команды
discord: "&9:game: &fНаш Discord: &bdiscord.gg/example" chat-commands:
- "<gradient:#FFA726:#FF9800>Полезные команды чата:</gradient>"
- "<gradient:#87CEEB:#4682B4>/msg <игрок> <сообщение></gradient> <gray>- личное сообщение</gray>"
- "<gradient:#87CEEB:#4682B4>/ignore <игрок></gradient> <gray>- игнорировать игрока</gray>"
# Голосование # Онлайн статистика
vote: "&a:thumbsup: &fГолосуй за сервер: &e/vote &7и получи награды!" online-stats:
- "<gradient:#6BCB77:#4ECDC4>Сейчас онлайн: {online} игроков</gradient>"
- "<gray>Максимум за день:</gray> <white>{max_online}</white>"
# Градиентное сообщение # Время на сервере
gradient: server-time:
- "<gradient:#FF6B6B:#4ECDC4>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>" - "<gradient:#87CEEB:#4682B4>Время на сервере:</gradient> <white>{time}</white>"
- "" - "<gray>Дата:</gray> <white>{date}</white>"
- " &f:fire: &eСпециальное событие!"
- " &7Двойной опыт до конца недели!" # События
- "" events:
- "<gradient:#4ECDC4:#FF6B6B>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━</gradient>" - "<gradient:#FF69B4:#FF1493>Следите за событиями!</gradient>"
- "<gray>Расписание:</gray> <gradient:#87CEEB:#4682B4>/events</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ПЛЕЙСХОЛДЕРЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Доступные плейсхолдеры в сообщениях:
# {online} - количество игроков онлайн
# {max_online} - максимальное количество игроков (из server.properties)
# {time} - текущее время
# {date} - текущая дата
# {server_name} - название сервера
# {tps} - TPS сервера (если доступно)
#
# Также поддерживаются все плейсхолдеры PlaceholderAPI

View file

@ -1,33 +1,75 @@
# LoChat Configuration # ╔══════════════════════════════════════════════════════════════════════════════╗
# Author: loki # ║ LoChat Configuration ║
# Config Version: 2 # ║ Продвинутый чат-плагин для Paper ║
# ║ Версия: 1.5.5-1.20.1 ║
# ║ Автор: loki ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
config-version: 2 config-version: 3
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОСНОВНЫЕ НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Префикс плагина в сообщениях
prefix: "<gradient:#00D4FF:#0099CC>[LoChat]</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ ЧАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
chat: chat:
# ═══════════════════════════════════════════════════════════════════════════
# ГЛОБАЛЬНЫЙ ЧАТ
# ═══════════════════════════════════════════════════════════════════════════
global: global:
# Включить глобальный чат
enabled: true enabled: true
prefix: "[G]" # Символ для отправки в глобальный чат
format: "<prefix><player>: <message>"
symbol: "!" symbol: "!"
# Кулдаун между сообщениями (секунды)
cooldown: 3 cooldown: 3
# Префикс глобального чата
prefix: "<gradient:#FFD700:#FFA500>[G]</gradient>"
# Формат сообщения: {prefix} {player} {message}
format: "{prefix} <gradient:#00FF88:#00CC66>{player}</gradient><dark_gray>:</dark_gray> {message}"
# ═══════════════════════════════════════════════════════════════════════════
# ЛОКАЛЬНЫЙ ЧАТ
# ═══════════════════════════════════════════════════════════════════════════
local: local:
# Включить локальный чат
enabled: true enabled: true
# Радиус локального чата (блоки)
radius: 100 radius: 100
prefix: "[L]" # Кулдаун между сообщениями (секунды)
format: "<player>: <message>"
cooldown: 1 cooldown: 1
# Префикс локального чата
prefix: "<gradient:#87CEEB:#4682B4>[L]</gradient>"
# Формат сообщения
format: "{prefix} <gradient:#00FF88:#00CC66>{player}</gradient><dark_gray>:</dark_gray> {message}"
# ═══════════════════════════════════════════════════════════════════════════
# ЛИЧНЫЕ СООБЩЕНИЯ
# ═══════════════════════════════════════════════════════════════════════════
pm: pm:
# Включить личные сообщения
enabled: true enabled: true
# Кулдаун между PM (секунды)
cooldown: 2
# Логировать PM в консоль
log: false log: false
# Звук при получении PM
sound: true sound: true
sound-type: "ENTITY_EXPERIENCE_ORB_PICKUP" sound-type: "BLOCK_NOTE_BLOCK_PLING"
# Интеграция с GradientNick (LoPreff) # ┌─────────────────────────────────────────────────────────────────────────────┐
# Использует PlaceholderAPI плейсхолдеры # │ ГРАДИЕНТНЫЕ НИКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Интеграция с градиентным модулем (встроенный LoPreff)
lopreff: lopreff:
# Включить градиентные ники
enabled: true enabled: true
# Использовать градиентный ник в чате # Использовать градиентный ник в чате
use-gradient-name: true use-gradient-name: true
@ -41,22 +83,45 @@ display:
# Обновлять tab list # Обновлять tab list
update-tab-list: true update-tab-list: true
# Упоминания @ник # ┌─────────────────────────────────────────────────────────────────────────────┐
mentions: # │ УПОМИНАНИЯ │
enabled: true # └─────────────────────────────────────────────────────────────────────────────┘
sound: true
sound-type: "BLOCK_NOTE_BLOCK_PLING"
# Выделение при @ник
highlight: "&#04CADF@{player}"
# Выделение когда твой ник написали (без @)
self-highlight: "&#04CADF{player}"
# Фильтр мата mentions:
filter: # Включить систему упоминаний (@nickname)
enabled: true enabled: true
# Воспроизводить звук при упоминании
sound: true
# Тип звука
sound-type: "BLOCK_NOTE_BLOCK_PLING"
# Подсветка упоминания в чате
highlight: "<gradient:#FFFF00:#FFD700>@{player}</gradient>"
# Подсветка собственного ника
self-highlight: "<gradient:#FFD700:#FFA500>{player}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ФИЛЬТР МАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
filter:
# Включить фильтр мата
enabled: true
# Список запрещенных слов (простая проверка)
words:
- "хуй"
- "пизд"
- "блять"
- "ебать"
- "сука"
- "мудак"
- "гандон"
- "пидор"
- "говно"
- "шлюха"
# Регулярные выражения для обнаружения мата с обходами # Регулярные выражения для обнаружения мата с обходами
patterns: patterns:
# Основные корни с вариациями
- "х\\s*у\\s*[йяёе]" # хуй, хуя, хуё, хуе - "х\\s*у\\s*[йяёе]" # хуй, хуя, хуё, хуе
- "[хx]\\s*у\\s*[йяёе]" # латиница: xuй - "[хx]\\s*у\\s*[йяёе]" # латиница: xuй
- "п\\s*[иi]\\s*з\\s*д" # пизд, пiзд - "п\\s*[иi]\\s*з\\s*д" # пизд, пiзд
@ -65,154 +130,113 @@ filter:
- "б\\s*л\\s*я\\s*[тдь]" # блять, блядь - "б\\s*л\\s*я\\s*[тдь]" # блять, блядь
- "с\\s*у\\s*к\\s*[аи]" # сука, суки - "с\\s*у\\s*к\\s*[аи]" # сука, суки
- "м\\s*у\\s*д\\s*[аи]" # муда, муди - "м\\s*у\\s*д\\s*[аи]" # муда, муди
- "г\\s*а\\s*н\\s*д\\s*о\\s*н" # гандон
- "д\\s*р\\s*о\\s*ч" # дрочить
- "с\\s*с\\s*а\\s*т\\s*ь" # ссать
- "с\\s*р\\s*а\\s*т\\s*ь" # срать
- "ш\\s*м\\s*а\\s*р\\s*[аи]" # шмара
- "ч\\s*м\\s*[оы]" # чмо, чмы
- "г\\s*н\\s*и\\s*д\\s*[аы]" # гнида
# Простые слова (для быстрой проверки) # Действие при обнаружении мата: censor, block, warn
words: action: "censor"
# Основные # Замена для цензуры
- "хуй"
- "хуя"
- "хуё"
- "хуе"
- "хуёк"
- "хуёчек"
- "хуесос"
- "хуеплёт"
- "пизда"
- "пизде"
- "пизду"
- "пиздец"
- "пиздюк"
- "пиздюшка"
- "пиздануть"
- "спиздить"
- "пиздоглазый"
- "ебать"
- "ебал"
- "ебут"
- "ебись"
- "ебитесь"
- "ебашить"
- "уёбывать"
- "заёбывать"
- "ебашка"
- "ебанарот"
- "блять"
- "блядь"
- "блядина"
- "сука"
- "суки"
- "сучка"
- "мудак"
- "мудила"
- "мудачок"
- "гандон"
- "гандоник"
- "пидор"
- "пидорас"
- "дрочить"
- "дрочка"
- "онанист"
- "ссать"
- "срать"
- "говно"
- "говнюк"
- "шмара"
- "шлюха"
- "проститутка"
- "чмо"
- "чмошник"
- "чмырь"
- "гнида"
- "тварь"
- "падла"
- "сволочь"
- "охуеть"
- "ахуеть"
- "нихуя"
- "кончепизд"
# Обходы с символами
- "х*й"
- "п@зда"
- "б#ять"
- "хуй"
- "ebat"
- "pidar"
- "mudak"
action: "censor" # censor/block/warn
replacement: "***" replacement: "***"
# Анти-спам # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АНТИ-СПАМ │
# └─────────────────────────────────────────────────────────────────────────────┘
antispam: antispam:
# Включить анти-спам
enabled: true enabled: true
# Максимальный процент заглавных букв
max-caps-percent: 70 max-caps-percent: 70
# Максимальное количество повторяющихся символов
max-repeat-chars: 5 max-repeat-chars: 5
# Задержка для проверки похожих сообщений (секунды)
similar-message-delay: 30 similar-message-delay: 30
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АВТОСООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
automessages: automessages:
# Включить автосообщения
enabled: true enabled: true
# Интервал между сообщениями (секунды)
interval: 300 interval: 300
# Случайный порядок сообщений
random: false random: false
formats: # ┌─────────────────────────────────────────────────────────────────────────────┐
announcement: "&#04CADF[ОБЪЯВЛЕНИЕ] <message>" # │ ОБЪЯВЛЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Настройки объявлений
announcements: announcements:
# Показывать title при объявлении # Показывать title при объявлении
show-title: true show-title: true
# Заголовок title # Заголовок title
title-header: "&#04CADFОБЪЯВЛЕНИЕ" title-header: "<gradient:#FF6B6B:#FF4757>ОБЪЯВЛЕНИЕ</gradient>"
# Показывать actionbar при объявлении # Показывать actionbar при объявлении
show-actionbar: true show-actionbar: true
# Время показа title (в секундах) # Время показа title (в секундах)
title-duration: 3 title-duration: 3
# ======================================== # Формат объявления
# Система мутов formats:
# ======================================== announcement: "<gradient:#FF6B6B:#FF4757>[ОБЪЯВЛЕНИЕ]</gradient> <message>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОЧИСТКА ЧАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
clearchat:
message:
# Показывать сообщение после очистки чата
enabled: true
# Текст сообщения ({player} - имя администратора)
text: "<gradient:#FF6B6B:#FF4757>Чат очищен администратором {player}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГОЛОВЫ ИГРОКОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
head-emoji:
# Включить функцию голов игроков
enabled: true
# Разрешить использование @head команд
allow-player-heads: true
# Максимальное количество голов в одном сообщении
max-heads-per-message: 3
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ СИСТЕМА МУТОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
mute: mute:
# Сообщения с плейсхолдерами: # Сообщения с плейсхолдерами:
# %duration% - время мута # %duration% - время мута
# %reason% - причина # %reason% - причина
# %player% - замученный игрок # %player% - замученный игрок
# %operator% - модератор (чистый ник без префикса и цвета) # %operator% - модератор
messages: messages:
# Сообщение при муте (broadcast) # Сообщение при муте (broadcast)
muted: "&#FF6B6B%player% &#808080был замучен на &#FF6B6B%duration% &#808080модератором &#FF6B6B%operator%&#808080. Причина: &#FF6B6B%reason%" muted: "<gradient:#FF6B6B:#FF4757>%player%</gradient> <gray>был замучен на</gray> <gradient:#FF6B6B:#FF4757>%duration%</gradient> <gray>модератором</gray> <gradient:#FF6B6B:#FF4757>%operator%</gradient><gray>. Причина:</gray> <gradient:#FF6B6B:#FF4757>%reason%</gradient>"
# Сообщение при размуте (broadcast) # Сообщение при размуте (broadcast)
unmuted: "&#6BCB77%player% &#808080был размучен модератором &#6BCB77%operator%" unmuted: "<gradient:#6BCB77:#4ECDC4>%player%</gradient> <gray>был размучен модератором</gray> <gradient:#6BCB77:#4ECDC4>%operator%</gradient>"
# Сообщение замученному игроку # Сообщение замученному игроку
you-muted: "&#FF6B6BВы замучены на %duration%! Причина: %reason%" you-muted: "<gradient:#FF6B6B:#FF4757>Вы замучены на %duration%! Причина: %reason%</gradient>"
# Сообщение при перманентном муте # Сообщение при перманентном муте
you-muted-permanent: "&#FF6B6BВы замучены навсегда! Причина: %reason%" you-muted-permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда! Причина: %reason%</gradient>"
# Сообщение при попытке написать в чат # Сообщение при попытке написать в чат
cannot-chat: "&#FF6B6BВы замучены! Осталось: %duration%" cannot-chat: "<gradient:#FF6B6B:#FF4757>Вы замучены! Осталось: %duration%</gradient>"
cannot-chat-permanent: "&#FF6B6BВы замучены навсегда!" cannot-chat-permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда!</gradient>"
# Тихий мут (только для тех кто видит) # Тихий мут (только для тех кто видит)
silent-muted: "&#808080[Тихо] &#FF6B6B%player% &#808080замучен на &#FF6B6B%duration% &#808080(%operator%). Причина: %reason%" silent-muted: "<gray>[Тихо]</gray> <gradient:#FF6B6B:#FF4757>%player%</gradient> <gray>замучен на</gray> <gradient:#FF6B6B:#FF4757>%duration%</gradient> <gray>(%operator%). Причина: %reason%</gray>"
silent-unmuted: "&#808080[Тихо] &#6BCB77%player% &#808080размучен (%operator%)" silent-unmuted: "<gray>[Тихо]</gray> <gradient:#6BCB77:#4ECDC4>%player%</gradient> <gray>размучен (%operator%)</gray>"
# Причина по умолчанию если не указана # Причина по умолчанию если не указана
default-reason: "Нету." default-reason: "Нарушение правил"
# Максимальное время мута по умолчанию (если не указано время) # Максимальное время мута по умолчанию (если не указано время)
# Используется наивысшее доступное время из прав игрока
# Формат: 1d, 7d, 30d, perm (перманентный)
default-duration: "7d" default-duration: "7d"
# Доступные длительности для прав lochat.mute.dur.<время> # Доступные длительности для прав lochat.mute.dur.<время>
# Игрок с правом lochat.mute.dur.7d может мутить максимум на 7 дней
# lochat.mute.dur.perm - может мутить навсегда
durations: durations:
- "10m" - "10m"
- "30m" - "30m"
@ -224,4 +248,4 @@ mute:
- "7d" - "7d"
- "14d" - "14d"
- "30d" - "30d"
- "perm" - "perm"

View file

@ -1,51 +1,169 @@
# Кастомные команды LoChat # ╔══════════════════════════════════════════════════════════════════════════════╗
# Здесь можно создавать свои команды с сообщениями и алиасами # ║ LoChat Custom Commands ║
# ║ Кастомные команды ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# Пример структуры: # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ПРИМЕРЫ КОМАНД │
# └─────────────────────────────────────────────────────────────────────────────┘
# Структура команды:
# command-name: # command-name:
# permission: "lochat.command.name" # Право для использования (опционально) # permission: "право.для.использования" # Опционально
# message: "Текст сообщения" # Сообщение которое отправится # message: "Текст сообщения" # Обязательно
# aliases: ["alias1", "alias2"] # Алиасы команды (опционально) # aliases: ["alias1", "alias2"] # Опционально
# type: "chat" # Тип: chat, broadcast, title, actionbar # type: "chat" # chat, broadcast, title, actionbar
# target: "sender" # Кому отправить: sender, all, permission:право # target: "sender" # sender, all, permission:право
# ═══════════════════════════════════════════════════════════════════════════════
# ИНФОРМАЦИОННЫЕ КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
# Примеры команд:
help: help:
message: "&6Добро пожаловать на сервер!\n&#808080Используйте /rules для просмотра правил" message: |
<gradient:#FFD700:#FFA500>═══════ Помощь по серверу ═══════</gradient>
<gradient:#87CEEB:#4682B4>/rules</gradient> <gray>- правила сервера</gray>
<gradient:#87CEEB:#4682B4>/discord</gradient> <gray>- наш Discord</gray>
<gradient:#87CEEB:#4682B4>/website</gradient> <gray>- официальный сайт</gray>
<gradient:#87CEEB:#4682B4>/coords</gradient> <gray>- ваши координаты</gray>
<gradient:#87CEEB:#4682B4>/time</gradient> <gray>- время на сервере</gray>
aliases: ["помощь", "хелп"] aliases: ["помощь", "хелп"]
type: "chat" type: "chat"
target: "sender" target: "sender"
rules: rules:
message: "&c&lПРАВИЛА СЕРВЕРА:\n&#8080801. Не гриферить\n2. Не читерить\n3. Уважать других игроков" message: |
<gradient:#FF6B6B:#FF4757>═══════ Правила сервера ═══════</gradient>
<white>1.</white> <gray>Не используйте читы и моды</gray>
<white>2.</white> <gray>Уважайте других игроков</gray>
<white>3.</white> <gray>Не спамьте в чате</gray>
<white>4.</white> <gray>Не стройте рядом с чужими постройками</gray>
<white>5.</white> <gray>Не используйте мат и оскорбления</gray>
<gradient:#FFA726:#FF9800>Нарушение правил карается мутом или баном!</gradient>
aliases: ["правила", "rule"] aliases: ["правила", "rule"]
type: "chat" type: "chat"
target: "sender" target: "sender"
discord: discord:
message: "<blue>Наш Discord сервер: discord.gg/example</blue>" message: |
<gradient:#7289DA:#5865F2>═══════ Наш Discord ═══════</gradient>
<gray>Присоединяйтесь к нашему сообществу!</gray>
<click:open_url:'https://discord.gg/example'><gradient:#87CEEB:#4682B4>🔗 discord.gg/example</gradient></click>
<gray>В Discord вы можете:</gray>
<white>•</white> <gray>Общаться с игроками</gray>
<white>•</white> <gray>Получать новости сервера</gray>
<white>•</white> <gray>Участвовать в событиях</gray>
aliases: ["дискорд", "ds"] aliases: ["дискорд", "ds"]
type: "chat" type: "chat"
target: "sender" target: "sender"
# Команда для админов website:
message: |
<gradient:#00FF88:#00CC66>═══════ Официальный сайт ═══════</gradient>
<click:open_url:'https://example.com'><gradient:#87CEEB:#4682B4>🌐 example.com</gradient></click>
<gray>На сайте доступно:</gray>
<white>•</white> <gray>Карта сервера</gray>
<white>•</white> <gray>Статистика игроков</gray>
<white>•</white> <gray>Форум и новости</gray>
aliases: ["сайт", "site"]
type: "chat"
target: "sender"
# ═══════════════════════════════════════════════════════════════════════════════
# УТИЛИТЫ
# ═══════════════════════════════════════════════════════════════════════════════
coords:
message: |
<gradient:#FFA726:#FF9800>Ваши координаты:</gradient>
<gradient:#87CEEB:#4682B4>X:</gradient> <white>{x}</white>
<gradient:#87CEEB:#4682B4>Y:</gradient> <white>{y}</white>
<gradient:#87CEEB:#4682B4>Z:</gradient> <white>{z}</white>
<gradient:#87CEEB:#4682B4>Мир:</gradient> <white>{world}</white>
aliases: ["координаты", "pos", "position"]
type: "actionbar"
target: "sender"
time:
message: |
<gradient:#87CEEB:#4682B4>Время на сервере:</gradient> <white>%server_time_24%</white>
<gradient:#87CEEB:#4682B4>Дата:</gradient> <white>%server_date%</white>
<gradient:#87CEEB:#4682B4>Онлайн:</gradient> <white>%server_online%</white> <gray>игроков</gray>
aliases: ["время", "дата"]
type: "chat"
target: "sender"
# ═══════════════════════════════════════════════════════════════════════════════
# АДМИНСКИЕ КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
restart-warning: restart-warning:
permission: "lochat.admin" permission: "lochat.admin"
message: "<red><bold>ВНИМАНИЕ!</bold></red> <yellow>Сервер будет перезагружен через 5 минут!</yellow>" message: |
<gradient:#FF6B6B:#FF4757>⚠ ВНИМАНИЕ! ⚠</gradient>
<gradient:#FFA726:#FF9800>Сервер будет перезагружен через 5 минут!</gradient>
<gray>Сохраните свой прогресс и подготовьтесь к перезагрузке.</gray>
aliases: ["рестарт", "reboot"] aliases: ["рестарт", "reboot"]
type: "title"
target: "all"
maintenance:
permission: "lochat.admin"
message: |
<gradient:#FF6B6B:#FF4757>Сервер переходит в режим технических работ</gradient>
<gray>Ожидаемое время: 30 минут</gray>
aliases: ["тех-работы", "maintenance"]
type: "broadcast" type: "broadcast"
target: "all" target: "all"
# Команда с title # ═══════════════════════════════════════════════════════════════════════════════
# VIP КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
vip-info:
permission: "lochat.vip"
message: |
<gradient:#FFD700:#FFA500>═══════ VIP Привилегии ═══════</gradient>
<white>•</white> <gray>Цветной ник и префикс</gray>
<white>•</white> <gray>Приоритет входа на сервер</gray>
<white>•</white> <gray>Дополнительные команды</gray>
<white>•</white> <gray>Больше возможностей в чате</gray>
<gradient:#6BCB77:#4ECDC4>Спасибо за поддержку сервера!</gradient>
type: "chat"
target: "permission:lochat.vip"
# ═══════════════════════════════════════════════════════════════════════════════
# РАЗВЛЕКАТЕЛЬНЫЕ КОМАНДЫ
# ═══════════════════════════════════════════════════════════════════════════════
welcome: welcome:
message: "Добро пожаловать!" message: |
aliases: ["привет"] <gradient:#FFD700:#FFA500>Добро пожаловать на сервер!</gradient>
<gradient:#87CEEB:#4682B4>Игрок {player} присоединился к игре</gradient>
aliases: ["привет", "hello"]
type: "title" type: "title"
target: "sender" target: "sender"
# Команда с actionbar # ┌─────────────────────────────────────────────────────────────────────────────┐
coords: # │ ПЛЕЙСХОЛДЕРЫ │
message: "Ваши координаты: {x}, {y}, {z}" # └─────────────────────────────────────────────────────────────────────────────┘
aliases: ["координаты", "pos"]
type: "actionbar" # Доступные плейсхолдеры в сообщениях:
target: "sender" # {player} - имя игрока
# {x}, {y}, {z} - координаты игрока
# {world} - название мира
# {arg0}, {arg1}, {arg2} - аргументы команды (нумерация с 0)
# {args} - все аргументы через пробел
#
# Также поддерживаются все плейсхолдеры PlaceholderAPI:
# %player_name% - имя игрока
# %server_online% - количество игроков онлайн
# %server_time_24% - время в формате 24 часа
# %server_date% - текущая дата
# И многие другие...

View file

@ -1,385 +1,281 @@
# LoChat - Смайлики и стикеры # ╔══════════════════════════════════════════════════════════════════════════════╗
# Автор: loki # ║ LoChat Emojis ║
# # ║ Смайлики для чата ║
# Формат: "триггер": "замена" # ║ Версия: 1.5.5-1.20.1 ║
# Игроки пишут триггер, он заменяется на символ # ╚══════════════════════════════════════════════════════════════════════════════╝
#
# Права:
# - chat.emoji.use — использование смайликов
# - chat.emoji.* — все смайлики
# - chat.emoji.hearts — только категория hearts
# - chat.emoji.custom — кастомные смайлики
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# НАСТРОЙКИ # │ ЭМОЦИИ И ЛИЦА │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
settings:
enabled: true
# Требовать право chat.emoji.use
require-permission: false
# ═══════════════════════════════════════════ emojis:
# ЛИЦА И ЭМОЦИИ # Основные эмоции
# ═══════════════════════════════════════════ ":)": "😊"
faces: ":(": "😢"
":)": "☺"
":D": "😃" ":D": "😃"
":(": "☹"
";)": "😉" ";)": "😉"
":P": "😛" ":P": "😛"
":O": "😮" ":o": "😮"
"XD": "😆" ":|": "😐"
":/": "😕" ":/": "😕"
":*": "😘" ":*": "😘"
"^_^": "😊" "<3": "❤️"
"-_-": "😑" "</3": "💔"
">:(": "😠"
":3": "😺" # Расширенные эмоции
":'(": "😢" ":smile:": "😊"
":')": "😂"
"o_o": "😳"
"O_O": "😱"
":thinking:": "🤔"
":cool:": "😎"
":angry:": "😡"
":sad:": "😢" ":sad:": "😢"
":happy:": "😊" ":happy:": "😃"
":laugh:": "😂" ":wink:": "😉"
":cry:": "😭" ":tongue:": "😛"
":sleep:": "😴" ":surprised:": "😮"
":sick:": "🤢" ":neutral:": "😐"
":dead:": "💀" ":confused:": "😕"
":kiss:": "😘"
# ═══════════════════════════════════════════ ":love:": "❤️"
# СЕРДЦА И ЛЮБОВЬ
# ═══════════════════════════════════════════
hearts:
"<3": "❤"
":heart:": "❤"
":red_heart:": "❤"
":blue_heart:": "💙"
":green_heart:": "💚"
":yellow_heart:": "💛"
":purple_heart:": "💜"
":black_heart:": "🖤"
":white_heart:": "🤍"
":orange_heart:": "🧡"
":broken_heart:": "💔" ":broken_heart:": "💔"
":two_hearts:": "💕" ":angry:": "😠"
":sparkling_heart:": "💖" ":rage:": "😡"
":heartbeat:": "💓" ":cry:": "😭"
":heartpulse:": "💗" ":laugh:": "😂"
":love:": "💕" ":joy:": "😂"
":kiss:": "💋" ":rofl:": "🤣"
":cool:": "😎"
":nerd:": "🤓"
":thinking:": "🤔"
":sleepy:": "😴"
":sick:": "🤒"
":dizzy:": "😵"
":crazy:": "🤪"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ЖЕСТЫ И РУКИ # │ ЖЕСТЫ И ДЕЙСТВИЯ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
gestures:
# Жесты
":thumbsup:": "👍" ":thumbsup:": "👍"
":+1:": "👍"
":thumbsdown:": "👎" ":thumbsdown:": "👎"
":-1:": "👎"
":clap:": "👏"
":wave:": "👋"
":ok:": "👌" ":ok:": "👌"
":ok_hand:": "👌" ":peace:": "✌️"
":fist:": "✊" ":fist:": "✊"
":punch:": "👊" ":wave:": "👋"
":peace:": "✌" ":clap:": "👏"
":v:": "✌"
":muscle:": "💪"
":strong:": "💪"
":pray:": "🙏" ":pray:": "🙏"
":hands:": "🙌" ":muscle:": "💪"
":point_up:": "☝"
":point_down:": "👇"
":point_left:": "👈"
":point_right:": "👉" ":point_right:": "👉"
":middle_finger:": "🖕" ":point_left:": "👈"
":call:": "🤙" ":point_up:": "👆"
":point_down:": "👇"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ПРИРОДА И ПОГОДА # │ ПРИРОДА И ПОГОДА │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
nature:
":fire:": "🔥" # Природа
":flame:": "🔥" ":sun:": "☀️"
":zap:": "⚡"
":lightning:": "⚡"
":boom:": "💥"
":explosion:": "💥"
":sparkles:": "✨"
":stars:": "✨"
":snow:": "❄"
":snowflake:": "❄"
":cloud:": "☁"
":sun:": "☀"
":sunny:": "☀"
":moon:": "🌙" ":moon:": "🌙"
":crescent_moon:": "🌙" ":star:": "⭐"
":full_moon:": "🌕" ":cloud:": "☁️"
":rainbow:": "🌈" ":rain:": "🌧️"
":snow:": "❄️"
":fire:": "🔥"
":water:": "💧" ":water:": "💧"
":drop:": "💧"
":ocean:": "🌊"
":wind:": "💨"
":tornado:": "🌪"
":leaf:": "🍃"
":tree:": "🌳" ":tree:": "🌳"
":flower:": "🌸" ":flower:": "🌸"
":rose:": "🌹" ":rose:": "🌹"
":cactus:": "🌵" ":leaf:": "🍃"
":rainbow:": "🌈"
":lightning:": "⚡"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ЗВЁЗДЫ И СИМВОЛЫ # │ ЖИВОТНЫЕ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
symbols:
":star:": "⭐"
":star2:": "🌟"
":glowing_star:": "🌟"
":dizzy:": "💫"
":sparkle:": "❇"
":skull:": "💀"
":ghost:": "👻"
":alien:": "👽"
":robot:": "🤖"
":poop:": "💩"
":100:": "💯"
":gem:": "💎"
":diamond:": "💎"
":money:": "💰"
":dollar:": "💵"
":coin:": "🪙"
":gift:": "🎁"
":balloon:": "🎈"
":party:": "🎉"
":tada:": "🎉"
":confetti:": "🎊"
":trophy:": "🏆"
":medal:": "🏅"
":crown:": "👑"
":king:": "👑"
# ═══════════════════════════════════════════ # Животные
# МАЙНКРАФТ ТЕМАТИКА
# ═══════════════════════════════════════════
minecraft:
":sword:": "⚔"
":crossed_swords:": "⚔"
":shield:": "🛡"
":axe:": "🪓"
":pickaxe:": "⛏"
":bow:": "🏹"
":arrow:": "➤"
":bomb:": "💣"
":tnt:": "🧨"
":potion:": "🧪"
":ender:": "🟣"
":nether:": "🔴"
":emerald:": "💚"
":gold:": "🟡"
":iron:": "⬜"
":coal:": "⬛"
":redstone:": "🔴"
":lapis:": "🔵"
":exp:": "🟢"
":xp:": "🟢"
":heart_mc:": "❤"
":hunger:": "🍖"
":armor:": "🛡"
# ═══════════════════════════════════════════
# ЖИВОТНЫЕ
# ═══════════════════════════════════════════
animals:
":cat:": "🐱" ":cat:": "🐱"
":dog:": "🐶" ":dog:": "🐶"
":wolf:": "🐺" ":wolf:": "🐺"
":fox:": "🦊" ":fox:": "🦊"
":pig:": "🐷"
":cow:": "🐮"
":sheep:": "🐑"
":chicken:": "🐔"
":dragon:": "🐉"
":bee:": "🐝"
":fish:": "🐟"
":spider:": "🕷"
":bat:": "🦇"
":rabbit:": "🐰"
":bear:": "🐻" ":bear:": "🐻"
":panda:": "🐼" ":panda:": "🐼"
":monkey:": "🐵" ":pig:": "🐷"
":cow:": "🐄"
":horse:": "🐴" ":horse:": "🐴"
":unicorn:": "🦄" ":sheep:": "🐑"
":snake:": "🐍" ":chicken:": "🐔"
":duck:": "🦆"
":eagle:": "🦅"
":fish:": "🐟"
":shark:": "🦈"
":whale:": "🐋"
":dolphin:": "🐬"
":turtle:": "🐢" ":turtle:": "🐢"
":frog:": "🐸" ":snake:": "🐍"
":bird:": "🐦" ":dragon:": "🐉"
":penguin:": "🐧" ":unicorn:": "🦄"
":owl:": "🦉"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ЕДА И НАПИТКИ # │ ЕДА И НАПИТКИ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
food:
# Еда
":apple:": "🍎" ":apple:": "🍎"
":green_apple:": "🍏" ":banana:": "🍌"
":orange:": "🍊"
":strawberry:": "🍓"
":watermelon:": "🍉"
":grapes:": "🍇"
":cherry:": "🍒"
":peach:": "🍑"
":pineapple:": "🍍"
":bread:": "🍞" ":bread:": "🍞"
":meat:": "🍖" ":cheese:": "🧀"
":steak:": "🥩" ":meat:": "🥩"
":cake:": "🎂"
":cookie:": "🍪"
":pizza:": "🍕" ":pizza:": "🍕"
":hamburger:": "🍔" ":burger:": "🍔"
":fries:": "🍟" ":fries:": "🍟"
":hotdog:": "🌭" ":hotdog:": "🌭"
":taco:": "🌮" ":taco:": "🌮"
":sushi:": "🍣" ":cake:": "🎂"
":ramen:": "🍜" ":cookie:": "🍪"
":egg:": "🥚" ":donut:": "🍩"
":cheese:": "🧀" ":ice_cream:": "🍦"
":milk:": "🥛" ":candy:": "🍬"
":chocolate:": "🍫"
# Напитки
":coffee:": "☕" ":coffee:": "☕"
":tea:": "🍵" ":tea:": "🍵"
":beer:": "🍺" ":beer:": "🍺"
":wine:": "🍷" ":wine:": "🍷"
":cocktail:": "🍹" ":cocktail:": "🍹"
":ice_cream:": "🍦" ":milk:": "🥛"
":donut:": "🍩" ":water:": "💧"
":candy:": "🍬"
":chocolate:": "🍫"
":watermelon:": "🍉"
":banana:": "🍌"
":carrot:": "🥕"
":corn:": "🌽"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# ИГРОВЫЕ И ИНТЕРФЕЙС # │ ИГРЫ И РАЗВЛЕЧЕНИЯ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
gaming:
# Игры
":game:": "🎮" ":game:": "🎮"
":controller:": "🎮"
":joystick:": "🕹"
":dice:": "🎲" ":dice:": "🎲"
":chess:": "♟" ":cards:": "🃏"
":target:": "🎯" ":chess:": "♟️"
":flag:": "🚩" ":football:": "⚽"
":checkered_flag:": "🏁" ":basketball:": "🏀"
":warning:": "⚠" ":tennis:": "🎾"
":no_entry:": "⛔" ":bowling:": "🎳"
":stop:": "🛑" ":dart:": "🎯"
":check:": "✓" ":trophy:": "🏆"
":checkmark:": "✔" ":medal:": "🏅"
":x:": "✗" ":crown:": "👑"
":cross:": "✖"
":question:": "❓"
":exclamation:": "❗"
":zzz:": "💤"
":bulb:": "💡"
":idea:": "💡"
":bell:": "🔔"
":mute:": "🔇"
":speaker:": "🔊"
":mega:": "📢"
":mic:": "🎤"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# СТРЕЛКИ И НАПРАВЛЕНИЯ # │ ТРАНСПОРТ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
arrows:
":arrow_up:": "↑"
":arrow_down:": "↓"
":arrow_left:": "←"
":arrow_right:": "→"
":arrow_up_right:": "↗"
":arrow_up_left:": "↖"
":arrow_down_right:": "↘"
":arrow_down_left:": "↙"
":arrows_lr:": "↔"
":arrows_ud:": "↕"
":return:": "↩"
":redo:": "↪"
":refresh:": "🔄"
":infinity:": "∞"
# ═══════════════════════════════════════════ # Транспорт
# МУЗЫКА И ИСКУССТВО ":car:": "🚗"
# ═══════════════════════════════════════════ ":bus:": "🚌"
music: ":truck:": "🚚"
":note:": "♪" ":bike:": "🚲"
":notes:": "♫" ":motorcycle:": "🏍️"
":music:": "🎵" ":plane:": "✈️"
":musical_note:": "🎶" ":helicopter:": "🚁"
":headphones:": "🎧" ":rocket:": "🚀"
":guitar:": "🎸" ":ship:": "🚢"
":piano:": "🎹" ":boat:": "⛵"
":drum:": "🥁" ":train:": "🚂"
":violin:": "🎻"
":art:": "🎨"
":palette:": "🎨"
":camera:": "📷"
":movie:": "🎬"
":tv:": "📺"
":radio:": "📻"
# ═══════════════════════════════════════════ # ┌─────────────────────────────────────────────────────────────────────────────┐
# РАЗНОЕ # │ ПРЕДМЕТЫ И СИМВОЛЫ │
# ═══════════════════════════════════════════ # └─────────────────────────────────────────────────────────────────────────────┘
misc:
# Предметы
":sword:": "⚔️"
":shield:": "🛡️"
":bow:": "🏹"
":hammer:": "🔨"
":pickaxe:": "⛏️"
":axe:": "🪓"
":shovel:": "🗡️"
":key:": "🔑"
":lock:": "🔒" ":lock:": "🔒"
":unlock:": "🔓" ":unlock:": "🔓"
":key:": "🔑" ":gem:": "💎"
":hourglass:": "⏳" ":diamond:": "💎"
":timer:": "⏱" ":gold:": "🥇"
":clock:": "🕐" ":silver:": "🥈"
":calendar:": "📅" ":bronze:": "🥉"
":pin:": "📌" ":coin:": "🪙"
":paperclip:": "📎" ":money:": "💰"
":scissors:": "✂" ":gift:": "🎁"
":pencil:": "✏" ":balloon:": "🎈"
":pen:": "🖊" ":party:": "🎉"
":book:": "📖" ":confetti:": "🎊"
":scroll:": "📜" ":fireworks:": "🎆"
":mail:": "📧"
":envelope:": "✉"
":phone:": "📱"
":computer:": "💻"
":keyboard:": "⌨"
":mouse:": "🖱"
":trash:": "🗑"
":tools:": "🛠"
":wrench:": "🔧"
":hammer:": "🔨"
":gear:": "⚙"
":link:": "🔗"
":magnet:": "🧲"
":battery:": "🔋"
":plug:": "🔌"
# ═══════════════════════════════════════════ # Символы
# КАСТОМНЫЕ (добавляй свои) ":check:": "✅"
# ═══════════════════════════════════════════ ":cross:": "❌"
custom: ":warning:": "⚠️"
# Примеры кастомных смайликов ":info:": "ℹ️"
":server:": "🖥" ":question:": "❓"
":admin:": "👨‍💻" ":exclamation:": "❗"
":mod:": "🛡" ":plus:": "➕"
":vip:": "⭐" ":minus:": "➖"
":donate:": "💎" ":multiply:": "✖️"
":online:": "🟢" ":divide:": "➗"
":offline:": "🔴" ":arrow_up:": "⬆️"
":afk:": "💤" ":arrow_down:": "⬇️"
":gg:": "🏆" ":arrow_left:": "⬅️"
":ez:": "😎" ":arrow_right:": "➡️"
":rip:": "⚰" ":100:": "💯"
":f:": "🇫" ":infinity:": "♾️"
":pog:": "😲"
":kek:": "😂" # ┌─────────────────────────────────────────────────────────────────────────────┐
":sus:": "🤨" # │ MINECRAFT СПЕЦИФИЧНЫЕ │
":bruh:": "😐" # └─────────────────────────────────────────────────────────────────────────────┘
":based:": "💪"
":cringe:": "😬" # Minecraft блоки и предметы
":ratio:": "📉" ":creeper:": "💥"
":w:": "🏆" ":tnt:": "🧨"
":l:": "📉" ":redstone:": "🔴"
":emerald:": "💚"
":iron:": "⚪"
":coal:": "⚫"
":wood:": "🟤"
":stone:": "🗿"
":dirt:": "🟫"
":grass:": "🟩"
":sand:": "🟨"
":water_bucket:": "🪣"
":lava_bucket:": "🔥"
":bed:": "🛏️"
":chest:": "📦"
":furnace:": "🔥"
":crafting:": "🔧"
":enchant:": "✨"
":potion:": "🧪"
":book:": "📚"
":map:": "🗺️"
":compass:": "🧭"
":clock:": "🕐"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГОЛОВЫ ИГРОКОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Примеры использования голов игроков:
# :head_Steve: - показать голову игрока Steve
# @head Notch - показать интерактивную голову игрока Notch
#
# Требуется право: lochat.heademoji.use
head_examples:
usage: |
<gradient:#9370DB:#8A2BE2>═══════ Головы игроков ═══════</gradient>
<gradient:#87CEEB:#4682B4>:head_nickname:</gradient> <gray>- показать голову игрока</gray>
<gradient:#87CEEB:#4682B4>@head nickname</gradient> <gray>- интерактивная голова</gray>
<gray>Требуется право:</gray> <white>lochat.heademoji.use</white>

View file

@ -1,68 +1,141 @@
# LoChat Gradient Module Configuration # ╔══════════════════════════════════════════════════════════════════════════════╗
# Модуль градиентных ников (интегрированный LoPreff) # ║ LoChat Gradient Config ║
# ║ Настройки градиентных ников ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# Включить/выключить модуль # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОСНОВНЫЕ НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Включить градиентные ники
enabled: true enabled: true
# Тип хранения данных: file или sqlite
storage-type: "file"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ ЦВЕТОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Минимальное количество цветов в градиенте
min-colors: 1
# Максимальное количество цветов в градиенте # Максимальное количество цветов в градиенте
max-colors: 7 max-colors: 7
# Минимальное количество цветов
min-colors: 1
# Цена за каждый цвет (PlayerPoints) # Цена за каждый цвет (PlayerPoints)
price-per-color: 50 price-per-color: 50
# Цена за префикс # ┌─────────────────────────────────────────────────────────────────────────────┐
# │ НАСТРОЙКИ ПРЕФИКСОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Цена за префикс (PlayerPoints)
prefix-price: 500 prefix-price: 500
# Покупка префикса один раз (потом бесплатно) # Одноразовая покупка префикса (true) или за каждое изменение (false)
prefix-one-time-purchase: true prefix-one-time-purchase: true
# Кулдаун на смену цвета (секунды) # Максимальная длина префикса (символы)
max-prefix-length: 16
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КУЛДАУНЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Кулдаун на изменение цвета (секунды)
color-cooldown: 60 color-cooldown: 60
# Кулдаун на смену префикса (секунды) # Кулдаун на изменение префикса (секунды)
prefix-cooldown: 300 prefix-cooldown: 120
# Максимальная длина префикса # ┌─────────────────────────────────────────────────────────────────────────────┐
max-prefix-length: 7 # │ ИНТЕГРАЦИИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Формат префикса ({prefix} - сам префикс) # Интеграция с LuckPerms
prefix-format: "[{prefix}] " luckperms:
# Включить интеграцию
enabled: true
# Приоритет префикса в LuckPerms
prefix-priority: 100
# Обновлять префикс в LuckPerms при изменении
update-prefix: true
# Применять градиент на префикс # Интеграция с PlayerPoints
gradient-on-prefix: true playerpoints:
# Включить интеграцию (покупки за поинты)
enabled: true
# Показывать баланс в GUI
show-balance: true
# Применять градиент на LuckPerms префикс (если нет кастомного) # ┌─────────────────────────────────────────────────────────────────────────────┐
gradient-on-luckperms-prefix: true # │ ПРЕДУСТАНОВКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Единый градиент на префикс + ник # Предустановленные градиенты
continuous-gradient: true presets:
fire: ["#FF4500", "#FF6347", "#FFD700"]
ocean: ["#00CED1", "#1E90FF", "#4169E1"]
forest: ["#228B22", "#32CD32", "#90EE90"]
sunset: ["#FF69B4", "#FF1493", "#DC143C"]
rainbow: ["#FF0000", "#FF7F00", "#FFFF00", "#00FF00", "#0000FF", "#4B0082", "#9400D3"]
ice: ["#B0E0E6", "#87CEEB", "#4682B4"]
gold: ["#FFD700", "#FFA500", "#FF8C00"]
purple: ["#9370DB", "#8A2BE2", "#4B0082"]
pink: ["#FFB6C1", "#FF69B4", "#FF1493"]
green: ["#00FF7F", "#00FA9A", "#98FB98"]
# Использовать &#RRGGBB формат (true) или <#RRGGBB> (false) # ┌─────────────────────────────────────────────────────────────────────────────┐
use-legacy-rgb-format: false # │ GUI НАСТРОЙКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Отображение над игроком gui:
display: # Название GUI подтверждения
# Обновлять display name игрока (показывает префикс+ник над головой) confirm-title: "<gradient:#FFD700:#FFA500>Подтверждение покупки</gradient>"
update-display-name: true
# Обновлять tab list # Размер GUI (9, 18, 27, 36, 45, 54)
update-tab-list: true size: 27
# Предметы в GUI
items:
confirm:
material: "GREEN_WOOL"
name: "<gradient:#6BCB77:#4ECDC4>✓ Подтвердить</gradient>"
lore:
- "<gray>Нажмите для подтверждения"
- "<gray>покупки градиента"
cancel:
material: "RED_WOOL"
name: "<gradient:#FF6B6B:#FF4757>✗ Отменить</gradient>"
lore:
- "<gray>Нажмите для отмены"
- "<gray>покупки"
info:
material: "PAPER"
name: "<gradient:#FFA726:#FF9800>Информация</gradient>"
lore:
- "<gray>Цена: <yellow>{price} поинтов</yellow>"
- "<gray>Цвета: <white>{colors}</white>"
- ""
- "<gray>Ваш баланс: <yellow>{balance}</yellow>"
# Тип хранилища: YAML или SQLITE # ┌─────────────────────────────────────────────────────────────────────────────┐
storage-type: YAML # │ РАЗРЕШЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Файл SQLite базы данных # Автоматические разрешения для групп
sqlite-file: gradient-data.db permissions:
# Группы, которые получают бесплатные градиенты
# Чёрный список префиксов (нельзя использовать) free-groups:
prefix-blacklist: - "vip"
- admin - "premium"
- owner - "admin"
- moder
- helper # Группы, которые могут использовать любые цвета
- staff unlimited-colors:
- модер - "admin"
- админ - "owner"
- хелпер

View file

@ -1,57 +1,156 @@
# LoChat Gradient Module Messages # ╔══════════════════════════════════════════════════════════════════════════════╗
# Сообщения модуля градиентных ников # ║ LoChat Gradient Messages ║
# ║ Сообщения градиентного модуля ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# Общие # ┌─────────────────────────────────────────────────────────────────────────────┐
only-player: "&#04CADFЭта команда только для игроков!" # │ ОСНОВНЫЕ СООБЩЕНИЯ │
no-permission: "&#04CADFУ вас нет прав на это действие!" # └─────────────────────────────────────────────────────────────────────────────┘
player-not-found: "&#04CADFИгрок не найден!"
reload-success: "&#04CADFКонфигурация градиентов перезагружена!"
cooldown: "&#04CADFПодождите ещё {time} секунд!"
# Цвета # Префикс градиентного модуля
color-help: | prefix: "<gradient:#9370DB:#8A2BE2>[Gradient]</gradient>"
&#04CADF=== Команда /color ===
&#04CADF/color <цвет1> [цвет2] ... &#808080— установить градиент
&#04CADF/color on &#808080— включить цвет
&#04CADF/color off &#808080— выключить цвет
&#04CADF/color reset &#808080— сбросить цвет
&#04CADF/color copy <игрок> &#808080— скопировать цвет
&#808080Пример: /color #FF0000 #00FF00 #0000FF
color-enabled: "&#04CADFЦвет ника включён!"
color-disabled: "&#04CADFЦвет ника выключен!"
color-reset: "&#04CADFЦвет ника сброшен!"
color-no-colors: "&#04CADFУ вас нет установленных цветов!"
color-success: "&#04CADFЦвет успешно установлен! Списано: {price} PP"
color-copy-usage: "&#04CADFИспользование: /color copy <игрок>"
color-copy-no-colors: "&#04CADFУ игрока {player} нет цветов!"
invalid-color: "&#04CADFНеверный формат цвета: {color}. Используйте #RRGGBB"
too-many-colors: "&#04CADFМаксимум {max} цветов!"
not-enough-colors: "&#04CADFМинимум {min} цветов!"
not-enough-points-color: "&#04CADFНедостаточно поинтов! Нужно: {price} PP"
# Префикс # ┌─────────────────────────────────────────────────────────────────────────────┐
prefix-help: | # │ КОМАНДА /color │
&#04CADF=== Команда /prefix === # └─────────────────────────────────────────────────────────────────────────────┘
&#04CADF/prefix <текст> &#808080— установить префикс
&#04CADF/prefix on &#808080— включить префикс
&#04CADF/prefix off &#808080— выключить префикс
&#04CADF/prefix reset &#808080— сбросить префикс
prefix-enabled: "&#04CADFПрефикс включён!"
prefix-disabled: "&#04CADFПрефикс выключен!"
prefix-reset-success: "&#04CADFПрефикс сброшен!"
prefix-no-prefix: "&#04CADFУ вас нет установленного префикса!"
prefix-success: "&#04CADFПрефикс успешно установлен! Списано: {price} PP"
prefix-success-free: "&#04CADFПрефикс успешно изменён!"
prefix-no-colors: "&#04CADFПрефикс не может содержать цветовые коды!"
prefix-invalid-chars: "&#04CADFПрефикс содержит недопустимые символы!"
prefix-blacklisted: "&#04CADFЭтот префикс запрещён!"
prefix-too-long: "&#04CADFПрефикс слишком длинный! Максимум: {max} символов"
not-enough-points-prefix: "&#04CADFНедостаточно поинтов! Нужно: {price} PP"
# Админ информация color:
info-header: "&#04CADF=== Информация об игроке {player} ===" # Успешные действия
info-prefix: "&#808080Префикс: &f{prefix}" set: "<gradient:#6BCB77:#4ECDC4>Градиент установлен!</gradient>"
info-prefix-enabled: "&#808080Префикс включён: &f{enabled}" enabled: "<gradient:#6BCB77:#4ECDC4>Градиентный ник включен</gradient>"
info-colors: "&#808080Цвета: &f{colors}" disabled: "<gradient:#FF6B6B:#FF4757>Градиентный ник отключен</gradient>"
info-color-enabled: "&#808080Цвет включён: &f{enabled}" reset: "<gradient:#FFA726:#FF9800>Градиент сброшен</gradient>"
info-prefix-purchased: "&#808080Префикс куплен: &f{purchased}" copied: "<gradient:#6BCB77:#4ECDC4>Градиент скопирован с игрока {player}</gradient>"
# Ошибки
invalid-hex: "<gradient:#FF6B6B:#FF4757>Неверный HEX цвет: {color}</gradient>"
too-many-colors: "<gradient:#FF6B6B:#FF4757>Слишком много цветов! Максимум: {max}</gradient>"
too-few-colors: "<gradient:#FF6B6B:#FF4757>Слишком мало цветов! Минимум: {min}</gradient>"
no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав на использование градиентов</gradient>"
cooldown: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед изменением цвета</gradient>"
not-enough-points: "<gradient:#FF6B6B:#FF4757>Недостаточно поинтов! Нужно: {price}, у вас: {balance}</gradient>"
player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
no-gradient: "<gradient:#FFA726:#FF9800>У игрока нет градиента для копирования</gradient>"
# Помощь
help:
- "<gradient:#FFD700:#FFA500>═══════ Команды градиента ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>/color <hex1> [hex2] ...</gradient> <gray>- установить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color on/off</gradient> <gray>- включить/выключить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color reset</gradient> <gray>- сбросить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color copy <игрок></gradient> <gray>- скопировать градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/color preset <название></gradient> <gray>- использовать предустановку</gray>"
- ""
- "<gradient:#FFA726:#FF9800>Предустановки:</gradient> <white>fire, ocean, forest, sunset, rainbow, ice, gold, purple, pink, green</white>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КОМАНДА /prefix │
# └─────────────────────────────────────────────────────────────────────────────┘
prefix:
# Успешные действия
set: "<gradient:#6BCB77:#4ECDC4>Префикс установлен!</gradient>"
enabled: "<gradient:#6BCB77:#4ECDC4>Префикс включен</gradient>"
disabled: "<gradient:#FF6B6B:#FF4757>Префикс отключен</gradient>"
reset: "<gradient:#FFA726:#FF9800>Префикс сброшен</gradient>"
# Ошибки
too-long: "<gradient:#FF6B6B:#FF4757>Префикс слишком длинный! Максимум: {max} символов</gradient>"
no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав на использование префиксов</gradient>"
cooldown: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед изменением префикса</gradient>"
not-enough-points: "<gradient:#FF6B6B:#FF4757>Недостаточно поинтов! Нужно: {price}, у вас: {balance}</gradient>"
# Помощь
help:
- "<gradient:#FFD700:#FFA500>═══════ Команды префикса ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>/prefix <текст></gradient> <gray>- установить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/prefix on/off</gradient> <gray>- включить/выключить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/prefix reset</gradient> <gray>- сбросить префикс</gray>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АДМИНСКИЕ КОМАНДЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
admin:
# Успешные действия
reloaded: "<gradient:#6BCB77:#4ECDC4>Конфигурация градиентов перезагружена</gradient>"
color-set: "<gradient:#6BCB77:#4ECDC4>Градиент установлен игроку {player}</gradient>"
prefix-set: "<gradient:#6BCB77:#4ECDC4>Префикс установлен игроку {player}</gradient>"
color-enabled: "<gradient:#6BCB77:#4ECDC4>Градиент включен для {player}</gradient>"
color-disabled: "<gradient:#FF6B6B:#FF4757>Градиент отключен для {player}</gradient>"
prefix-enabled: "<gradient:#6BCB77:#4ECDC4>Префикс включен для {player}</gradient>"
prefix-disabled: "<gradient:#FF6B6B:#FF4757>Префикс отключен для {player}</gradient>"
color-reset: "<gradient:#FFA726:#FF9800>Градиент сброшен для {player}</gradient>"
prefix-reset: "<gradient:#FFA726:#FF9800>Префикс сброшен для {player}</gradient>"
updated-all: "<gradient:#6BCB77:#4ECDC4>Обновлены все игроки ({count})</gradient>"
# Информация об игроке
info:
- "<gradient:#FFD700:#FFA500>═══════ Информация о {player} ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>Градиент:</gradient> <white>{gradient_status}</white>"
- "<gradient:#87CEEB:#4682B4>Цвета:</gradient> <white>{colors}</white>"
- "<gradient:#87CEEB:#4682B4>Префикс:</gradient> <white>{prefix_status}</white>"
- "<gradient:#87CEEB:#4682B4>Текст префикса:</gradient> <white>{prefix_text}</white>"
- "<gradient:#87CEEB:#4682B4>Отображаемое имя:</gradient> {display_name}"
# Ошибки
player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
invalid-hex: "<gradient:#FF6B6B:#FF4757>Неверный HEX цвет: {color}</gradient>"
# Помощь
help:
- "<gradient:#FFD700:#FFA500>═══════ Админские команды ═══════</gradient>"
- "<gradient:#87CEEB:#4682B4>/aprefix reload</gradient> <gray>- перезагрузить конфиг</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix info <игрок></gradient> <gray>- информация об игроке</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix setcolor <игрок> <цвета></gradient> <gray>- установить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix setprefix <игрок> <текст></gradient> <gray>- установить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix coloron/coloroff <игрок></gradient> <gray>- вкл/выкл градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix prefixon/prefixoff <игрок></gradient> <gray>- вкл/выкл префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix resetcolor <игрок></gradient> <gray>- сбросить градиент</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix resetprefix <игрок></gradient> <gray>- сбросить префикс</gray>"
- "<gradient:#87CEEB:#4682B4>/aprefix updateall</gradient> <gray>- обновить всех игроков</gray>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ GUI СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
gui:
# Заголовки
confirm-title: "<gradient:#FFD700:#FFA500>Подтверждение покупки</gradient>"
# Кнопки
confirm-button: "<gradient:#6BCB77:#4ECDC4>✓ Подтвердить покупку</gradient>"
cancel-button: "<gradient:#FF6B6B:#FF4757>✗ Отменить</gradient>"
# Описания
confirm-lore:
- "<gray>Цена: <yellow>{price} поинтов</yellow>"
- "<gray>Цвета: <white>{colors}</white>"
- ""
- "<gray>Ваш баланс: <yellow>{balance}</yellow>"
- ""
- "<gradient:#6BCB77:#4ECDC4>Нажмите для подтверждения</gradient>"
cancel-lore:
- "<gradient:#FF6B6B:#FF4757>Нажмите для отмены</gradient>"
# Результаты
purchase-success: "<gradient:#6BCB77:#4ECDC4>Градиент успешно куплен!</gradient>"
purchase-cancelled: "<gradient:#FFA726:#FF9800>Покупка отменена</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОБЩИЕ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
general:
# Статусы
enabled: "<gradient:#6BCB77:#4ECDC4>Включено</gradient>"
disabled: "<gradient:#FF6B6B:#FF4757>Отключено</gradient>"
none: "<gray>Нет</gray>"
# Единицы времени
seconds: "сек"
minutes: "мин"
hours: "ч"
days: "д"

View file

@ -1,70 +1,133 @@
prefix: "&#04CADF[LoChat]" # ╔══════════════════════════════════════════════════════════════════════════════╗
# ║ LoChat Messages ║
# ║ Сообщения плагина LoChat ║
# ║ Версия: 1.5.5-1.20.1 ║
# ╚══════════════════════════════════════════════════════════════════════════════╝
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОСНОВНЫЕ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
# Префикс плагина
prefix: "<gradient:#00D4FF:#0099CC>[LoChat]</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ГЛОБАЛЬНЫЙ ЧАТ │
# └─────────────────────────────────────────────────────────────────────────────┘
global: global:
disabled: "&#04CADFГлобальный чат отключен" disabled: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
toggled-on: "&#04CADFГлобальный чат включен" toggled-on: "<gradient:#6BCB77:#4ECDC4>Глобальный чат включен</gradient>"
toggled-off: "&#04CADFГлобальный чат отключен" toggled-off: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ЛОКАЛЬНЫЙ ЧАТ │
# └─────────────────────────────────────────────────────────────────────────────┘
local: local:
no-players: "&#04CADFРядом нет игроков" no-players: "<gradient:#FFA726:#FF9800>Рядом нет игроков</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ЛИЧНЫЕ СООБЩЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
pm: pm:
# Форматы личных сообщений # Форматы личных сообщений
# {sender} - ник отправителя, {receiver} - ник получателя # {sender} - ник отправителя, {receiver} - ник получателя
# {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом # {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом
# {message} - текст сообщения # {message} - текст сообщения
format-sent: "&#808080[PM] Ты → {receiver_display}&#808080: {message}" format-sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> {receiver_display}<gray>:</gray> {message}"
format-received: "&#808080[PM] {sender_display}&#808080 → Ты: {message}" format-received: "<gray>[PM]</gray> {sender_display} <gray>→</gray> <gradient:#87CEEB:#4682B4>Ты</gradient><gray>:</gray> {message}"
# Использовать градиентные ники в PM # Использовать градиентные ники в PM
use-gradient-names: true use-gradient-names: true
# Старые форматы (для совместимости) # Старые форматы (для совместимости)
sent: "&#808080[PM] Ты → {player}: {message}" sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> <white>{player}</white><gray>:</gray> {message}"
received: "&#808080[PM] {player} → Ты: {message}" received: "<gray>[PM]</gray> <white>{player}</white> <gray>→</gray> <gradient:#87CEEB:#4682B4>Ты</gradient><gray>:</gray> {message}"
no-reply: "&#04CADFНекому ответить"
ignored: "&#04CADFЭтот игрок вас игнорирует" # Ошибки PM
player-offline: "&#04CADFИгрок не в сети" no-reply: "<gradient:#FF6B6B:#FF4757>Некому ответить</gradient>"
self: "&#04CADFНельзя писать самому себе" ignored: "<gradient:#FF6B6B:#FF4757>Этот игрок вас игнорирует</gradient>"
player-offline: "<gradient:#FF6B6B:#FF4757>Игрок не в сети</gradient>"
self: "<gradient:#FF6B6B:#FF4757>Нельзя писать самому себе</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ИГНОРИРОВАНИЕ │
# └─────────────────────────────────────────────────────────────────────────────┘
ignore: ignore:
added: "&#04CADFИгрок {player} добавлен в игнор" added: "<gradient:#6BCB77:#4ECDC4>Игрок {player} добавлен в игнор</gradient>"
removed: "&#04CADFИгрок {player} убран из игнора" removed: "<gradient:#6BCB77:#4ECDC4>Игрок {player} убран из игнора</gradient>"
already-ignored: "&#04CADFИгрок уже в игноре" already-ignored: "<gradient:#FFA726:#FF9800>Игрок уже в игноре</gradient>"
not-ignored: "&#04CADFИгрок не в игноре" not-ignored: "<gradient:#FFA726:#FF9800>Игрок не в игноре</gradient>"
self: "&#04CADFНельзя игнорировать себя" self: "<gradient:#FF6B6B:#FF4757>Нельзя игнорировать себя</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОБЪЯВЛЕНИЯ │
# └─────────────────────────────────────────────────────────────────────────────┘
announce: announce:
reloaded: "&#04CADFКонфигурация перезагружена" reloaded: "<gradient:#6BCB77:#4ECDC4>Конфигурация перезагружена</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ШПИОН РЕЖИМ │
# └─────────────────────────────────────────────────────────────────────────────┘
spy: spy:
enabled: "&#04CADFШпион режим включен" enabled: "<gradient:#6BCB77:#4ECDC4>Шпион режим включен</gradient>"
disabled: "&#04CADFШпион режим выключен" disabled: "<gradient:#FF6B6B:#FF4757>Шпион режим выключен</gradient>"
format: "&#808080[SPY] {sender} → {receiver}: {message}" format: "<gray>[SPY]</gray> <gradient:#FFD700:#FFA500>{sender}</gradient> <gray>→</gray> <gradient:#87CEEB:#4682B4>{receiver}</gradient><gray>:</gray> <white>{message}</white>"
chat-format: "&#808080[SPY] {type} {sender}: {message}" chat-format: "<gray>[SPY]</gray> <gradient:#FFA726:#FF9800>{type}</gradient> <gradient:#00FF88:#00CC66>{sender}</gradient><gray>:</gray> <white>{message}</white>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ФИЛЬТР МАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
filter: filter:
blocked: "&#04CADFСообщение заблокировано (мат)" blocked: "<gradient:#FF6B6B:#FF4757>Сообщение заблокировано (недопустимые слова)</gradient>"
warning: "&#04CADFПредупреждение: не используйте мат!" warning: "<gradient:#FFA726:#FF9800>Предупреждение: не используйте недопустимые слова!</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ КУЛДАУНЫ │
# └─────────────────────────────────────────────────────────────────────────────┘
cooldown: cooldown:
wait: "&#04CADFПодождите {time} сек перед следующим сообщением" wait: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед следующим сообщением</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ АНТИ-СПАМ │
# └─────────────────────────────────────────────────────────────────────────────┘
antispam: antispam:
caps: "&#04CADFСлишком много заглавных букв!" caps: "<gradient:#FF6B6B:#FF4757>Слишком много заглавных букв!</gradient>"
repeat: "&#04CADFНе повторяйте символы!" repeat: "<gradient:#FF6B6B:#FF4757>Не повторяйте символы!</gradient>"
similar: "&#04CADFНе отправляйте одинаковые сообщения!" similar: "<gradient:#FF6B6B:#FF4757>Не отправляйте одинаковые сообщения!</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОЧИСТКА ЧАТА │
# └─────────────────────────────────────────────────────────────────────────────┘
clearchat: clearchat:
cleared: "&#04CADFЧат очищен администратором {player}" cleared: "<gradient:#6BCB77:#4ECDC4>Чат очищен администратором {player}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ ОШИБКИ │
# └─────────────────────────────────────────────────────────────────────────────┘
errors: errors:
no-permission: "&#04CADFНет прав!" no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав!</gradient>"
player-not-found: "&#04CADFИгрок не найден" player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
invalid-usage: "&#04CADFИспользование: {usage}" invalid-usage: "<gradient:#FFA726:#FF9800>Использование: {usage}</gradient>"
# ┌─────────────────────────────────────────────────────────────────────────────┐
# │ СИСТЕМА МУТОВ │
# └─────────────────────────────────────────────────────────────────────────────┘
mute: mute:
muted: "&#04CADFИгрок {player} замучен на {time}" muted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} замучен на {time}</gradient>"
unmuted: "&#04CADFИгрок {player} размучен" unmuted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} размучен</gradient>"
already-muted: "&#04CADFИгрок уже замучен" already-muted: "<gradient:#FFA726:#FF9800>Игрок уже замучен</gradient>"
not-muted: "&#04CADFИгрок не замучен" not-muted: "<gradient:#FFA726:#FF9800>Игрок не замучен</gradient>"
you-muted: "&#04CADFВы замучены! Осталось: {time}" you-muted: "<gradient:#FF6B6B:#FF4757>Вы замучены! Осталось: {time}</gradient>"
permanent: "&#04CADFВы замучены навсегда!" permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда!</gradient>"

View file

@ -11,6 +11,7 @@ softdepend:
- PlayerPoints - PlayerPoints
- LuckPerms - LuckPerms
- LibertyBans - LibertyBans
- SkinsRestorer
commands: commands:
g: g:
@ -73,6 +74,12 @@ commands:
permission: chat.clear permission: chat.clear
aliases: [cc, очиститьчат, сдуфксрфе, сс] aliases: [cc, очиститьчат, сдуфксрфе, сс]
clearchatconfig:
description: Configure clear chat message
usage: /clearchatconfig <enable|disable|message|status> [text]
permission: lochat.clearchat.config
aliases: [ccc, настройкаочистки]
lochat: lochat:
description: LoChat admin command description: LoChat admin command
usage: /lochat [reload] usage: /lochat [reload]
@ -219,3 +226,9 @@ permissions:
lochat.mute.dur.perm: lochat.mute.dur.perm:
description: Can mute permanently description: Can mute permanently
default: op default: op
lochat.clearchat.config:
description: Can configure clear chat message
default: op
lochat.heademoji.use:
description: Can use head emojis in chat
default: true