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:
parent
e616667c78
commit
01d8c3a2e7
34 changed files with 2650 additions and 1563 deletions
411
README.md
411
README.md
|
|
@ -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󅒐Используйте /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󅒐Наслаждайтесь игрой!"
|
|
||||||
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>
|
||||||
BA8FFГолубой
|
<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. Все права защищены.**
|
||||||
|
|
@ -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
|
||||||
Binary file not shown.
Binary file not shown.
BIN
bin/main/com/loki/lochat/commands/ClearChatConfigCommand.class
Normal file
BIN
bin/main/com/loki/lochat/commands/ClearChatConfigCommand.class
Normal file
Binary file not shown.
BIN
bin/main/com/loki/lochat/commands/PlayerInfoCommand.class
Normal file
BIN
bin/main/com/loki/lochat/commands/PlayerInfoCommand.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/main/com/loki/lochat/integrations/SkinsRestorerHook.class
Normal file
BIN
bin/main/com/loki/lochat/integrations/SkinsRestorerHook.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
bin/main/com/loki/lochat/managers/HeadEmojiManager.class
Normal file
BIN
bin/main/com/loki/lochat/managers/HeadEmojiManager.class
Normal file
Binary file not shown.
|
|
@ -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: "CADF@{player}"
|
|
||||||
# Выделение когда твой ник написали (без @)
|
|
||||||
self-highlight: "CADF{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: "CADF[ОБЪЯВЛЕНИЕ] <message>"
|
# │ ОБЪЯВЛЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
# Настройки объявлений
|
|
||||||
announcements:
|
announcements:
|
||||||
# Показывать title при объявлении
|
# Показывать title при объявлении
|
||||||
show-title: true
|
show-title: true
|
||||||
# Заголовок title
|
# Заголовок title
|
||||||
title-header: "CADFОБЪЯВЛЕНИЕ"
|
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% 󅒐был замучен на &#FF6B6B%duration% 󅒐модератором &#FF6B6B%operator%󅒐. Причина: &#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: "BCB77%player% 󅒐был размучен модератором BCB77%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: "󅒐[Тихо] &#FF6B6B%player% 󅒐замучен на &#FF6B6B%duration% 󅒐(%operator%). Причина: %reason%"
|
silent-muted: "<gray>[Тихо]</gray> <gradient:#FF6B6B:#FF4757>%player%</gradient> <gray>замучен на</gray> <gradient:#FF6B6B:#FF4757>%duration%</gradient> <gray>(%operator%). Причина: %reason%</gray>"
|
||||||
silent-unmuted: "󅒐[Тихо] BCB77%player% 󅒐размучен (%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"
|
||||||
|
|
@ -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󅒐Используйте /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�. Не гриферить\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% - текущая дата
|
||||||
|
# И многие другие...
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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"
|
||||||
- хелпер
|
|
||||||
|
|
@ -1,57 +1,156 @@
|
||||||
# LoChat Gradient Module Messages
|
# ╔══════════════════════════════════════════════════════════════════════════════╗
|
||||||
# Сообщения модуля градиентных ников
|
# ║ LoChat Gradient Messages ║
|
||||||
|
# ║ Сообщения градиентного модуля ║
|
||||||
|
# ║ Версия: 1.5.5-1.20.1 ║
|
||||||
|
# ╚══════════════════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
# Общие
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
only-player: "CADFЭта команда только для игроков!"
|
# │ ОСНОВНЫЕ СООБЩЕНИЯ │
|
||||||
no-permission: "CADFУ вас нет прав на это действие!"
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
player-not-found: "CADFИгрок не найден!"
|
|
||||||
reload-success: "CADFКонфигурация градиентов перезагружена!"
|
|
||||||
cooldown: "CADFПодождите ещё {time} секунд!"
|
|
||||||
|
|
||||||
# Цвета
|
# Префикс градиентного модуля
|
||||||
color-help: |
|
prefix: "<gradient:#9370DB:#8A2BE2>[Gradient]</gradient>"
|
||||||
CADF=== Команда /color ===
|
|
||||||
CADF/color <цвет1> [цвет2] ... 󅒐— установить градиент
|
|
||||||
CADF/color on 󅒐— включить цвет
|
|
||||||
CADF/color off 󅒐— выключить цвет
|
|
||||||
CADF/color reset 󅒐— сбросить цвет
|
|
||||||
CADF/color copy <игрок> 󅒐— скопировать цвет
|
|
||||||
󅒐Пример: /color #FF0000 #00FF00 #0000FF
|
|
||||||
color-enabled: "CADFЦвет ника включён!"
|
|
||||||
color-disabled: "CADFЦвет ника выключен!"
|
|
||||||
color-reset: "CADFЦвет ника сброшен!"
|
|
||||||
color-no-colors: "CADFУ вас нет установленных цветов!"
|
|
||||||
color-success: "CADFЦвет успешно установлен! Списано: {price} PP"
|
|
||||||
color-copy-usage: "CADFИспользование: /color copy <игрок>"
|
|
||||||
color-copy-no-colors: "CADFУ игрока {player} нет цветов!"
|
|
||||||
invalid-color: "CADFНеверный формат цвета: {color}. Используйте #RRGGBB"
|
|
||||||
too-many-colors: "CADFМаксимум {max} цветов!"
|
|
||||||
not-enough-colors: "CADFМинимум {min} цветов!"
|
|
||||||
not-enough-points-color: "CADFНедостаточно поинтов! Нужно: {price} PP"
|
|
||||||
|
|
||||||
# Префикс
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
prefix-help: |
|
# │ КОМАНДА /color │
|
||||||
CADF=== Команда /prefix ===
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
CADF/prefix <текст> 󅒐— установить префикс
|
|
||||||
CADF/prefix on 󅒐— включить префикс
|
|
||||||
CADF/prefix off 󅒐— выключить префикс
|
|
||||||
CADF/prefix reset 󅒐— сбросить префикс
|
|
||||||
prefix-enabled: "CADFПрефикс включён!"
|
|
||||||
prefix-disabled: "CADFПрефикс выключен!"
|
|
||||||
prefix-reset-success: "CADFПрефикс сброшен!"
|
|
||||||
prefix-no-prefix: "CADFУ вас нет установленного префикса!"
|
|
||||||
prefix-success: "CADFПрефикс успешно установлен! Списано: {price} PP"
|
|
||||||
prefix-success-free: "CADFПрефикс успешно изменён!"
|
|
||||||
prefix-no-colors: "CADFПрефикс не может содержать цветовые коды!"
|
|
||||||
prefix-invalid-chars: "CADFПрефикс содержит недопустимые символы!"
|
|
||||||
prefix-blacklisted: "CADFЭтот префикс запрещён!"
|
|
||||||
prefix-too-long: "CADFПрефикс слишком длинный! Максимум: {max} символов"
|
|
||||||
not-enough-points-prefix: "CADFНедостаточно поинтов! Нужно: {price} PP"
|
|
||||||
|
|
||||||
# Админ информация
|
color:
|
||||||
info-header: "CADF=== Информация об игроке {player} ==="
|
# Успешные действия
|
||||||
info-prefix: "󅒐Префикс: &f{prefix}"
|
set: "<gradient:#6BCB77:#4ECDC4>Градиент установлен!</gradient>"
|
||||||
info-prefix-enabled: "󅒐Префикс включён: &f{enabled}"
|
enabled: "<gradient:#6BCB77:#4ECDC4>Градиентный ник включен</gradient>"
|
||||||
info-colors: "󅒐Цвета: &f{colors}"
|
disabled: "<gradient:#FF6B6B:#FF4757>Градиентный ник отключен</gradient>"
|
||||||
info-color-enabled: "󅒐Цвет включён: &f{enabled}"
|
reset: "<gradient:#FFA726:#FF9800>Градиент сброшен</gradient>"
|
||||||
info-prefix-purchased: "󅒐Префикс куплен: &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: "д"
|
||||||
|
|
@ -1,70 +1,133 @@
|
||||||
prefix: "CADF[LoChat]"
|
# ╔══════════════════════════════════════════════════════════════════════════════╗
|
||||||
|
# ║ LoChat Messages ║
|
||||||
|
# ║ Сообщения плагина LoChat ║
|
||||||
|
# ║ Версия: 1.5.5-1.20.1 ║
|
||||||
|
# ╚══════════════════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОСНОВНЫЕ СООБЩЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
# Префикс плагина
|
||||||
|
prefix: "<gradient:#00D4FF:#0099CC>[LoChat]</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ГЛОБАЛЬНЫЙ ЧАТ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
global:
|
global:
|
||||||
disabled: "CADFГлобальный чат отключен"
|
disabled: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
|
||||||
toggled-on: "CADFГлобальный чат включен"
|
toggled-on: "<gradient:#6BCB77:#4ECDC4>Глобальный чат включен</gradient>"
|
||||||
toggled-off: "CADFГлобальный чат отключен"
|
toggled-off: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ЛОКАЛЬНЫЙ ЧАТ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
local:
|
local:
|
||||||
no-players: "CADFРядом нет игроков"
|
no-players: "<gradient:#FFA726:#FF9800>Рядом нет игроков</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ЛИЧНЫЕ СООБЩЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
pm:
|
pm:
|
||||||
# Форматы личных сообщений
|
# Форматы личных сообщений
|
||||||
# {sender} - ник отправителя, {receiver} - ник получателя
|
# {sender} - ник отправителя, {receiver} - ник получателя
|
||||||
# {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом
|
# {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом
|
||||||
# {message} - текст сообщения
|
# {message} - текст сообщения
|
||||||
format-sent: "󅒐[PM] Ты → {receiver_display}󅒐: {message}"
|
format-sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> {receiver_display}<gray>:</gray> {message}"
|
||||||
format-received: "󅒐[PM] {sender_display}󅒐 → Ты: {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: "󅒐[PM] Ты → {player}: {message}"
|
sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> <white>{player}</white><gray>:</gray> {message}"
|
||||||
received: "󅒐[PM] {player} → Ты: {message}"
|
received: "<gray>[PM]</gray> <white>{player}</white> <gray>→</gray> <gradient:#87CEEB:#4682B4>Ты</gradient><gray>:</gray> {message}"
|
||||||
no-reply: "CADFНекому ответить"
|
|
||||||
ignored: "CADFЭтот игрок вас игнорирует"
|
# Ошибки PM
|
||||||
player-offline: "CADFИгрок не в сети"
|
no-reply: "<gradient:#FF6B6B:#FF4757>Некому ответить</gradient>"
|
||||||
self: "CADFНельзя писать самому себе"
|
ignored: "<gradient:#FF6B6B:#FF4757>Этот игрок вас игнорирует</gradient>"
|
||||||
|
player-offline: "<gradient:#FF6B6B:#FF4757>Игрок не в сети</gradient>"
|
||||||
|
self: "<gradient:#FF6B6B:#FF4757>Нельзя писать самому себе</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ИГНОРИРОВАНИЕ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
ignore:
|
ignore:
|
||||||
added: "CADFИгрок {player} добавлен в игнор"
|
added: "<gradient:#6BCB77:#4ECDC4>Игрок {player} добавлен в игнор</gradient>"
|
||||||
removed: "CADFИгрок {player} убран из игнора"
|
removed: "<gradient:#6BCB77:#4ECDC4>Игрок {player} убран из игнора</gradient>"
|
||||||
already-ignored: "CADFИгрок уже в игноре"
|
already-ignored: "<gradient:#FFA726:#FF9800>Игрок уже в игноре</gradient>"
|
||||||
not-ignored: "CADFИгрок не в игноре"
|
not-ignored: "<gradient:#FFA726:#FF9800>Игрок не в игноре</gradient>"
|
||||||
self: "CADFНельзя игнорировать себя"
|
self: "<gradient:#FF6B6B:#FF4757>Нельзя игнорировать себя</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОБЪЯВЛЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
announce:
|
announce:
|
||||||
reloaded: "CADFКонфигурация перезагружена"
|
reloaded: "<gradient:#6BCB77:#4ECDC4>Конфигурация перезагружена</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ШПИОН РЕЖИМ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
spy:
|
spy:
|
||||||
enabled: "CADFШпион режим включен"
|
enabled: "<gradient:#6BCB77:#4ECDC4>Шпион режим включен</gradient>"
|
||||||
disabled: "CADFШпион режим выключен"
|
disabled: "<gradient:#FF6B6B:#FF4757>Шпион режим выключен</gradient>"
|
||||||
format: "󅒐[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: "󅒐[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: "CADFСообщение заблокировано (мат)"
|
blocked: "<gradient:#FF6B6B:#FF4757>Сообщение заблокировано (недопустимые слова)</gradient>"
|
||||||
warning: "CADFПредупреждение: не используйте мат!"
|
warning: "<gradient:#FFA726:#FF9800>Предупреждение: не используйте недопустимые слова!</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ КУЛДАУНЫ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
cooldown:
|
cooldown:
|
||||||
wait: "CADFПодождите {time} сек перед следующим сообщением"
|
wait: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед следующим сообщением</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ АНТИ-СПАМ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
antispam:
|
antispam:
|
||||||
caps: "CADFСлишком много заглавных букв!"
|
caps: "<gradient:#FF6B6B:#FF4757>Слишком много заглавных букв!</gradient>"
|
||||||
repeat: "CADFНе повторяйте символы!"
|
repeat: "<gradient:#FF6B6B:#FF4757>Не повторяйте символы!</gradient>"
|
||||||
similar: "CADFНе отправляйте одинаковые сообщения!"
|
similar: "<gradient:#FF6B6B:#FF4757>Не отправляйте одинаковые сообщения!</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОЧИСТКА ЧАТА │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
clearchat:
|
clearchat:
|
||||||
cleared: "CADFЧат очищен администратором {player}"
|
cleared: "<gradient:#6BCB77:#4ECDC4>Чат очищен администратором {player}</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОШИБКИ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
errors:
|
errors:
|
||||||
no-permission: "CADFНет прав!"
|
no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав!</gradient>"
|
||||||
player-not-found: "CADFИгрок не найден"
|
player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
|
||||||
invalid-usage: "CADFИспользование: {usage}"
|
invalid-usage: "<gradient:#FFA726:#FF9800>Использование: {usage}</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ СИСТЕМА МУТОВ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
mute:
|
mute:
|
||||||
muted: "CADFИгрок {player} замучен на {time}"
|
muted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} замучен на {time}</gradient>"
|
||||||
unmuted: "CADFИгрок {player} размучен"
|
unmuted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} размучен</gradient>"
|
||||||
already-muted: "CADFИгрок уже замучен"
|
already-muted: "<gradient:#FFA726:#FF9800>Игрок уже замучен</gradient>"
|
||||||
not-muted: "CADFИгрок не замучен"
|
not-muted: "<gradient:#FFA726:#FF9800>Игрок не замучен</gradient>"
|
||||||
you-muted: "CADFВы замучены! Осталось: {time}"
|
you-muted: "<gradient:#FF6B6B:#FF4757>Вы замучены! Осталось: {time}</gradient>"
|
||||||
permanent: "CADFВы замучены навсегда!"
|
permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда!</gradient>"
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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", "CADFЧат очищен администратором {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", "CADFЧат очищен администратором {player}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClearChatMessage(String message) {
|
||||||
|
config.set("clearchat.message.text", message);
|
||||||
|
plugin.saveConfig();
|
||||||
|
}
|
||||||
|
|
||||||
// Anti-spam
|
// Anti-spam
|
||||||
public boolean isAntiSpamEnabled() {
|
public boolean isAntiSpamEnabled() {
|
||||||
|
|
|
||||||
|
|
@ -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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
193
src/main/java/com/loki/lochat/managers/HeadEmojiManager.java
Normal file
193
src/main/java/com/loki/lochat/managers/HeadEmojiManager.java
Normal 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -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
|
||||||
|
|
@ -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: "CADF@{player}"
|
|
||||||
# Выделение когда твой ник написали (без @)
|
|
||||||
self-highlight: "CADF{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: "CADF[ОБЪЯВЛЕНИЕ] <message>"
|
# │ ОБЪЯВЛЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
# Настройки объявлений
|
|
||||||
announcements:
|
announcements:
|
||||||
# Показывать title при объявлении
|
# Показывать title при объявлении
|
||||||
show-title: true
|
show-title: true
|
||||||
# Заголовок title
|
# Заголовок title
|
||||||
title-header: "CADFОБЪЯВЛЕНИЕ"
|
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% 󅒐был замучен на &#FF6B6B%duration% 󅒐модератором &#FF6B6B%operator%󅒐. Причина: &#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: "BCB77%player% 󅒐был размучен модератором BCB77%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: "󅒐[Тихо] &#FF6B6B%player% 󅒐замучен на &#FF6B6B%duration% 󅒐(%operator%). Причина: %reason%"
|
silent-muted: "<gray>[Тихо]</gray> <gradient:#FF6B6B:#FF4757>%player%</gradient> <gray>замучен на</gray> <gradient:#FF6B6B:#FF4757>%duration%</gradient> <gray>(%operator%). Причина: %reason%</gray>"
|
||||||
silent-unmuted: "󅒐[Тихо] BCB77%player% 󅒐размучен (%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"
|
||||||
|
|
@ -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󅒐Используйте /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�. Не гриферить\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% - текущая дата
|
||||||
|
# И многие другие...
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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"
|
||||||
- хелпер
|
|
||||||
|
|
@ -1,57 +1,156 @@
|
||||||
# LoChat Gradient Module Messages
|
# ╔══════════════════════════════════════════════════════════════════════════════╗
|
||||||
# Сообщения модуля градиентных ников
|
# ║ LoChat Gradient Messages ║
|
||||||
|
# ║ Сообщения градиентного модуля ║
|
||||||
|
# ║ Версия: 1.5.5-1.20.1 ║
|
||||||
|
# ╚══════════════════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
# Общие
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
only-player: "CADFЭта команда только для игроков!"
|
# │ ОСНОВНЫЕ СООБЩЕНИЯ │
|
||||||
no-permission: "CADFУ вас нет прав на это действие!"
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
player-not-found: "CADFИгрок не найден!"
|
|
||||||
reload-success: "CADFКонфигурация градиентов перезагружена!"
|
|
||||||
cooldown: "CADFПодождите ещё {time} секунд!"
|
|
||||||
|
|
||||||
# Цвета
|
# Префикс градиентного модуля
|
||||||
color-help: |
|
prefix: "<gradient:#9370DB:#8A2BE2>[Gradient]</gradient>"
|
||||||
CADF=== Команда /color ===
|
|
||||||
CADF/color <цвет1> [цвет2] ... 󅒐— установить градиент
|
|
||||||
CADF/color on 󅒐— включить цвет
|
|
||||||
CADF/color off 󅒐— выключить цвет
|
|
||||||
CADF/color reset 󅒐— сбросить цвет
|
|
||||||
CADF/color copy <игрок> 󅒐— скопировать цвет
|
|
||||||
󅒐Пример: /color #FF0000 #00FF00 #0000FF
|
|
||||||
color-enabled: "CADFЦвет ника включён!"
|
|
||||||
color-disabled: "CADFЦвет ника выключен!"
|
|
||||||
color-reset: "CADFЦвет ника сброшен!"
|
|
||||||
color-no-colors: "CADFУ вас нет установленных цветов!"
|
|
||||||
color-success: "CADFЦвет успешно установлен! Списано: {price} PP"
|
|
||||||
color-copy-usage: "CADFИспользование: /color copy <игрок>"
|
|
||||||
color-copy-no-colors: "CADFУ игрока {player} нет цветов!"
|
|
||||||
invalid-color: "CADFНеверный формат цвета: {color}. Используйте #RRGGBB"
|
|
||||||
too-many-colors: "CADFМаксимум {max} цветов!"
|
|
||||||
not-enough-colors: "CADFМинимум {min} цветов!"
|
|
||||||
not-enough-points-color: "CADFНедостаточно поинтов! Нужно: {price} PP"
|
|
||||||
|
|
||||||
# Префикс
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
prefix-help: |
|
# │ КОМАНДА /color │
|
||||||
CADF=== Команда /prefix ===
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
CADF/prefix <текст> 󅒐— установить префикс
|
|
||||||
CADF/prefix on 󅒐— включить префикс
|
|
||||||
CADF/prefix off 󅒐— выключить префикс
|
|
||||||
CADF/prefix reset 󅒐— сбросить префикс
|
|
||||||
prefix-enabled: "CADFПрефикс включён!"
|
|
||||||
prefix-disabled: "CADFПрефикс выключен!"
|
|
||||||
prefix-reset-success: "CADFПрефикс сброшен!"
|
|
||||||
prefix-no-prefix: "CADFУ вас нет установленного префикса!"
|
|
||||||
prefix-success: "CADFПрефикс успешно установлен! Списано: {price} PP"
|
|
||||||
prefix-success-free: "CADFПрефикс успешно изменён!"
|
|
||||||
prefix-no-colors: "CADFПрефикс не может содержать цветовые коды!"
|
|
||||||
prefix-invalid-chars: "CADFПрефикс содержит недопустимые символы!"
|
|
||||||
prefix-blacklisted: "CADFЭтот префикс запрещён!"
|
|
||||||
prefix-too-long: "CADFПрефикс слишком длинный! Максимум: {max} символов"
|
|
||||||
not-enough-points-prefix: "CADFНедостаточно поинтов! Нужно: {price} PP"
|
|
||||||
|
|
||||||
# Админ информация
|
color:
|
||||||
info-header: "CADF=== Информация об игроке {player} ==="
|
# Успешные действия
|
||||||
info-prefix: "󅒐Префикс: &f{prefix}"
|
set: "<gradient:#6BCB77:#4ECDC4>Градиент установлен!</gradient>"
|
||||||
info-prefix-enabled: "󅒐Префикс включён: &f{enabled}"
|
enabled: "<gradient:#6BCB77:#4ECDC4>Градиентный ник включен</gradient>"
|
||||||
info-colors: "󅒐Цвета: &f{colors}"
|
disabled: "<gradient:#FF6B6B:#FF4757>Градиентный ник отключен</gradient>"
|
||||||
info-color-enabled: "󅒐Цвет включён: &f{enabled}"
|
reset: "<gradient:#FFA726:#FF9800>Градиент сброшен</gradient>"
|
||||||
info-prefix-purchased: "󅒐Префикс куплен: &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: "д"
|
||||||
|
|
@ -1,70 +1,133 @@
|
||||||
prefix: "CADF[LoChat]"
|
# ╔══════════════════════════════════════════════════════════════════════════════╗
|
||||||
|
# ║ LoChat Messages ║
|
||||||
|
# ║ Сообщения плагина LoChat ║
|
||||||
|
# ║ Версия: 1.5.5-1.20.1 ║
|
||||||
|
# ╚══════════════════════════════════════════════════════════════════════════════╝
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОСНОВНЫЕ СООБЩЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
# Префикс плагина
|
||||||
|
prefix: "<gradient:#00D4FF:#0099CC>[LoChat]</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ГЛОБАЛЬНЫЙ ЧАТ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
global:
|
global:
|
||||||
disabled: "CADFГлобальный чат отключен"
|
disabled: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
|
||||||
toggled-on: "CADFГлобальный чат включен"
|
toggled-on: "<gradient:#6BCB77:#4ECDC4>Глобальный чат включен</gradient>"
|
||||||
toggled-off: "CADFГлобальный чат отключен"
|
toggled-off: "<gradient:#FF6B6B:#FF4757>Глобальный чат отключен</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ЛОКАЛЬНЫЙ ЧАТ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
local:
|
local:
|
||||||
no-players: "CADFРядом нет игроков"
|
no-players: "<gradient:#FFA726:#FF9800>Рядом нет игроков</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ЛИЧНЫЕ СООБЩЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
pm:
|
pm:
|
||||||
# Форматы личных сообщений
|
# Форматы личных сообщений
|
||||||
# {sender} - ник отправителя, {receiver} - ник получателя
|
# {sender} - ник отправителя, {receiver} - ник получателя
|
||||||
# {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом
|
# {sender_display} - отправитель с градиентом, {receiver_display} - получатель с градиентом
|
||||||
# {message} - текст сообщения
|
# {message} - текст сообщения
|
||||||
format-sent: "󅒐[PM] Ты → {receiver_display}󅒐: {message}"
|
format-sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> {receiver_display}<gray>:</gray> {message}"
|
||||||
format-received: "󅒐[PM] {sender_display}󅒐 → Ты: {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: "󅒐[PM] Ты → {player}: {message}"
|
sent: "<gray>[PM]</gray> <gradient:#87CEEB:#4682B4>Ты</gradient> <gray>→</gray> <white>{player}</white><gray>:</gray> {message}"
|
||||||
received: "󅒐[PM] {player} → Ты: {message}"
|
received: "<gray>[PM]</gray> <white>{player}</white> <gray>→</gray> <gradient:#87CEEB:#4682B4>Ты</gradient><gray>:</gray> {message}"
|
||||||
no-reply: "CADFНекому ответить"
|
|
||||||
ignored: "CADFЭтот игрок вас игнорирует"
|
# Ошибки PM
|
||||||
player-offline: "CADFИгрок не в сети"
|
no-reply: "<gradient:#FF6B6B:#FF4757>Некому ответить</gradient>"
|
||||||
self: "CADFНельзя писать самому себе"
|
ignored: "<gradient:#FF6B6B:#FF4757>Этот игрок вас игнорирует</gradient>"
|
||||||
|
player-offline: "<gradient:#FF6B6B:#FF4757>Игрок не в сети</gradient>"
|
||||||
|
self: "<gradient:#FF6B6B:#FF4757>Нельзя писать самому себе</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ИГНОРИРОВАНИЕ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
ignore:
|
ignore:
|
||||||
added: "CADFИгрок {player} добавлен в игнор"
|
added: "<gradient:#6BCB77:#4ECDC4>Игрок {player} добавлен в игнор</gradient>"
|
||||||
removed: "CADFИгрок {player} убран из игнора"
|
removed: "<gradient:#6BCB77:#4ECDC4>Игрок {player} убран из игнора</gradient>"
|
||||||
already-ignored: "CADFИгрок уже в игноре"
|
already-ignored: "<gradient:#FFA726:#FF9800>Игрок уже в игноре</gradient>"
|
||||||
not-ignored: "CADFИгрок не в игноре"
|
not-ignored: "<gradient:#FFA726:#FF9800>Игрок не в игноре</gradient>"
|
||||||
self: "CADFНельзя игнорировать себя"
|
self: "<gradient:#FF6B6B:#FF4757>Нельзя игнорировать себя</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОБЪЯВЛЕНИЯ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
announce:
|
announce:
|
||||||
reloaded: "CADFКонфигурация перезагружена"
|
reloaded: "<gradient:#6BCB77:#4ECDC4>Конфигурация перезагружена</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ШПИОН РЕЖИМ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
spy:
|
spy:
|
||||||
enabled: "CADFШпион режим включен"
|
enabled: "<gradient:#6BCB77:#4ECDC4>Шпион режим включен</gradient>"
|
||||||
disabled: "CADFШпион режим выключен"
|
disabled: "<gradient:#FF6B6B:#FF4757>Шпион режим выключен</gradient>"
|
||||||
format: "󅒐[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: "󅒐[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: "CADFСообщение заблокировано (мат)"
|
blocked: "<gradient:#FF6B6B:#FF4757>Сообщение заблокировано (недопустимые слова)</gradient>"
|
||||||
warning: "CADFПредупреждение: не используйте мат!"
|
warning: "<gradient:#FFA726:#FF9800>Предупреждение: не используйте недопустимые слова!</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ КУЛДАУНЫ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
cooldown:
|
cooldown:
|
||||||
wait: "CADFПодождите {time} сек перед следующим сообщением"
|
wait: "<gradient:#FFA726:#FF9800>Подождите {time} сек перед следующим сообщением</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ АНТИ-СПАМ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
antispam:
|
antispam:
|
||||||
caps: "CADFСлишком много заглавных букв!"
|
caps: "<gradient:#FF6B6B:#FF4757>Слишком много заглавных букв!</gradient>"
|
||||||
repeat: "CADFНе повторяйте символы!"
|
repeat: "<gradient:#FF6B6B:#FF4757>Не повторяйте символы!</gradient>"
|
||||||
similar: "CADFНе отправляйте одинаковые сообщения!"
|
similar: "<gradient:#FF6B6B:#FF4757>Не отправляйте одинаковые сообщения!</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОЧИСТКА ЧАТА │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
clearchat:
|
clearchat:
|
||||||
cleared: "CADFЧат очищен администратором {player}"
|
cleared: "<gradient:#6BCB77:#4ECDC4>Чат очищен администратором {player}</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ ОШИБКИ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
errors:
|
errors:
|
||||||
no-permission: "CADFНет прав!"
|
no-permission: "<gradient:#FF6B6B:#FF4757>Нет прав!</gradient>"
|
||||||
player-not-found: "CADFИгрок не найден"
|
player-not-found: "<gradient:#FF6B6B:#FF4757>Игрок не найден</gradient>"
|
||||||
invalid-usage: "CADFИспользование: {usage}"
|
invalid-usage: "<gradient:#FFA726:#FF9800>Использование: {usage}</gradient>"
|
||||||
|
|
||||||
|
# ┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
# │ СИСТЕМА МУТОВ │
|
||||||
|
# └─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
|
||||||
mute:
|
mute:
|
||||||
muted: "CADFИгрок {player} замучен на {time}"
|
muted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} замучен на {time}</gradient>"
|
||||||
unmuted: "CADFИгрок {player} размучен"
|
unmuted: "<gradient:#6BCB77:#4ECDC4>Игрок {player} размучен</gradient>"
|
||||||
already-muted: "CADFИгрок уже замучен"
|
already-muted: "<gradient:#FFA726:#FF9800>Игрок уже замучен</gradient>"
|
||||||
not-muted: "CADFИгрок не замучен"
|
not-muted: "<gradient:#FFA726:#FF9800>Игрок не замучен</gradient>"
|
||||||
you-muted: "CADFВы замучены! Осталось: {time}"
|
you-muted: "<gradient:#FF6B6B:#FF4757>Вы замучены! Осталось: {time}</gradient>"
|
||||||
permanent: "CADFВы замучены навсегда!"
|
permanent: "<gradient:#FF6B6B:#FF4757>Вы замучены навсегда!</gradient>"
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue