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