LoChat/README.md
loki5512344 80cf392c1f docs: добавить Code of Conduct, Security Policy и Issue Templates
Добавлены:
- CODE_OF_CONDUCT.md - правила поведения в сообществе
- SECURITY.md - политика безопасности и отчетность об уязвимостях
- .github/ISSUE_TEMPLATE/bug_report.md - шаблон для багов
- .github/ISSUE_TEMPLATE/feature_request.md - шаблон для новых функций
- .github/ISSUE_TEMPLATE/question.md - шаблон для вопросов
- .github/PULL_REQUEST_TEMPLATE.md - шаблон для PR

Обновлен README.md:
- Обновлена версия Paper до 1.21.1
- Улучшен раздел "Вклад в проект"
- Уточнены известные проблемы
2026-04-12 23:00:20 +02:00

401 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LoChat - Advanced Chat Plugin
Мощный чат плагин для Paper/Folia серверов с градиентными никами, продвинутой модерацией и гибкой конфигурацией.
## Сборка и локальный тестовый сервер
```bash
./gradlew runServer
```
Gradle задача `runServer` ([run-paper](https://github.com/jpenilla/run-paper)) скачивает Paper 1.21.1, собирает JAR плагина и кладёт его в `run/plugins`. Первый запуск долгий из-за загрузки. Остановка через `stop` в консоли сервера.
## Основные возможности
### Чат система
- Глобальный чат - общение между всеми игроками
- Локальный чат - общение в радиусе
- Личные сообщения - PM система с ответами
- Игнорирование - блокировка нежелательных игроков
- Упоминания - @player, @everyone, @here, @role
- Hover/Click события - интерактивные сообщения
- Кастомные сообщения входа/выхода/смерти с названием оружия
### Градиентные ники и префиксы
- Кастомные градиентные цвета (до 7 цветов)
- Готовые пресеты (огонь, океан, радуга и т.д.)
- Кастомные префиксы и суффиксы
- Интеграция с LuckPerms (префиксы и суффиксы с градиентом)
- Система покупки через PlayerPoints
- Кулдауны и ограничения
### Модерация
- Мут система с историей
- Бан система с временем и причиной
- Варны (предупреждения)
- Временные и постоянные наказания
- Скрытые муты (silent)
- Готовые причины наказаний
- Эскалация наказаний
### Фильтры чата
- Фильтр мата с защитой от обхода (х->x, о->o и т.д.)
- Антиспам и антифлуд
- CAPS фильтр
- URL и IP фильтр
- Фильтр скрытых ссылок (discord.gg, bit.ly и т.д.)
- Фильтр повторяющихся символов
- Настраиваемый список запрещенных слов
### RP команды
- /me - действия от третьего лица
- /do - описание действий
- /try - попытка действия с шансом
- /roll - бросок кубика
- Настраиваемый радиус и кулдауны
### Звуковые эффекты
- Звуки для PM и упоминаний
- Звуки для мутов/размутов
- Звуки для градиентов
- Звуки для команд
- Персональные настройки звуков
### Discord интеграция
- Webhook для отправки сообщений
- События входа/выхода/смерти
- Кастомные форматы и цвета
- Аватары игроков
- Фильтрация сообщений
## Структура конфигов
```
plugins/LoChat/
├── config.yml # Основной конфиг (все настройки в одном месте)
├── messages.yml # Сообщения плагина
├── custom-commands.yml # Кастомные команды
├── badwords.txt # Список запрещенных слов
│
├── config/
│ ├── appearance.yml # Внешний вид чата (префиксы, форматы, hover)
│ ├── discord.yml # Discord интеграция
│ ├── filters.yml # Настройки фильтров
│ ├── messages.yml # Дополнительные сообщения
│ ├── mute.yml # Настройки мутов
│ └── sounds.yml # Звуковые эффекты
│
└── data/
├── mutes.yml # Данные мутов
├── bans.yml # Данные банов
├── ignores.yml # Игнорирование
└── gradient-data.yml # Градиентные ники
```
## Быстрый старт
### Установка
1. Скачайте последнюю версию из Releases
2. Поместите JAR в папку `plugins/`
3. Перезапустите сервер
4. Настройте конфиги в `plugins/LoChat/`
### Первая настройка
1. **Основной конфиг** (`config.yml`):
- Настройте радиус локального чата
- Включите/отключите нужные функции
- Настройте цены на градиенты
- Настройте фильтры
2. **Фильтр мата** (`badwords.txt`):
- Добавьте свои запрещенные слова
- По одному слову на строку
- Строки с # игнорируются
3. **Внешний вид** (`config/appearance.yml`):
- Настройте префиксы чата (GLOBAL/LOCAL)
- Измените цвета и форматы
- Настройте hover подсказки
- Добавьте эмодзи
4. **Discord** (`config/discord.yml`):
- Вставьте URL вебхука
- Настройте форматы сообщений
- Включите нужные события
## Сборка из исходников
```bash
# Клонировать репозиторий
git clone https://codeberg.org/loki5512344/Lochat.git
cd Lochat
# Собрать проект
./gradlew build
# Jar файл будет в build/libs/
```
## Зависимости
### Обязательные
- Java 21+
- Paper 1.21.1+ или Folia
### Опциональные
- PlaceholderAPI - для плейсхолдеров
- LuckPerms - для градиентных префиксов/суффиксов
- PlayerPoints - для покупки градиентов
- LibertyBans - синхронизация мутов
- SkinsRestorer - поддержка скинов
## Команды
### Чат команды
- `/g <сообщение>` - глобальный чат
- `/l <сообщение>` - локальный чат
- `/msg <игрок> <сообщение>` - личное сообщение
- `/reply <сообщение>` - ответить на ЛС
- `/ignore <игрок>` - игнорировать игрока
- `/unignore <игрок>` - разигнорировать
- `/ignorelist` - список игнорируемых
### Градиенты
- `/color <hex1> [hex2] ...` - установить градиент
- `/prefix <текст>` - установить префикс
- `/aprefix <команда>` - админские команды градиентов
### Модерация
- `/lmute <игрок> [время] [-s] [причина]` - замутить
- `/lunmute <игрок> [-s]` - размутить
- `/lban <игрок> [время] [причина]` - забанить
- `/lunban <игрок>` - разбанить
- `/lwarn <игрок> [причина]` - выдать варн
- `/lmutelist` - список мутов
- `/lmutehistory <игрок>` - история мутов
### RP команды
- `/me <действие>` - действие от 3-го лица
- `/do <описание>` - описание действия
- `/try <попытка>` - попытка с шансом
- `/roll [число]` - бросок кубика
### Админские
- `/lochat reload` - перезагрузить конфиг
- `/clearchat` - очистить чат
- `/chatspy` - режим шпиона
- `/announce <сообщение>` - объявление
## Примеры использования
### Градиентный ник
```
/color #FF0000 #00FF00 #0000FF
```
Создаст радужный градиент от красного через зеленый к синему.
### Кастомный префикс
```
/prefix [VIP]
```
Установит префикс `[VIP]` перед ником.
### Настройка системы оплаты градиентов
#### Вариант 1: Через PlayerPoints (платно)
```yaml
# config.yml
gradient:
price-per-color: 50
prefix-price: 500
use-permission-instead-of-cost: false
```
#### Вариант 2: Через пермишены (бесплатно)
```yaml
# config.yml
gradient:
price-per-color: 0
prefix-price: 0
use-permission-instead-of-cost: true
```
Выдайте игрокам права:
```
/lp user <игрок> permission set gradient.color true
/lp user <игрок> permission set gradient.prefix true
/lp user <игрок> permission set gradient.bypass.cost true
```
### Основные пермишены
#### Градиенты
- `gradient.color` - доступ к /color
- `gradient.prefix` - доступ к /prefix
- `gradient.bypass.cost` - бесплатное использование
- `gradient.bypass.cooldown` - обход кулдауна
- `gradient.admin` - админские команды
#### Чат
- `lochat.chat.colors` - цветные сообщения
- `lochat.chat.global` - глобальный чат
- `lochat.chat.local` - локальный чат
- `lochat.pm` - личные сообщения
#### Модерация
- `lochat.mute` - мутить игроков
- `lochat.mute.silent` - скрытые муты
- `lochat.ban` - банить игроков
- `lochat.warn` - выдавать варны
#### Обход фильтров
- `lochat.bypass.swear` - обход мат-фильтра
- `lochat.bypass.spam` - обход антиспама
- `lochat.bypass.flood` - обход антифлуда
- `lochat.bypass.caps` - обход CAPS фильтра
- `lochat.bypass.urlfilter` - обход URL фильтра
- `lochat.bypass.cooldown` - обход кулдауна
### Мут игрока
```
/lmute Player123 1h Спам в чате
```
Замутит игрока на 1 час с причиной "Спам в чате".
### Скрытый мут
```
/lmute Player123 30m -s Нарушение правил
```
Замутит игрока скрытно (другие игроки не увидят уведомление).
### Бан с причиной
```
/lban Player123 7d Читы
```
Забанит игрока на 7 дней с причиной "Читы".
## Форматы времени
- `s` - секунды (30s = 30 секунд)
- `m` - минуты (15m = 15 минут)
- `h` - часы (2h = 2 часа)
- `d` - дни (7d = 7 дней)
- `perm` или `0` - навсегда
Примеры:
- `1h30m` - 1 час 30 минут
- `7d` - 7 дней
- `perm` - навсегда
## Плейсхолдеры
### Чат
- `{player}` - ник игрока
- `{player_prefix}` - префикс игрока (LuckPerms/градиент)
- `{player_suffix}` - суффикс игрока (LuckPerms/градиент)
- `{message}` - текст сообщения
- `{emoji}` - эмодзи префикса чата
- `{prefix}` - префикс чата (GLOBAL/LOCAL)
- `{separator}` - разделитель
### Hover
- `{player}` - ник игрока
- `{world}` - мир игрока
- `{ping}` - пинг
- `{gamemode}` - режим игры
- `{health}` - здоровье
- `{food}` - голод
### Смерть
- `{player}` - ник погибшего
- `{killer}` - ник убийцы
- `{weapon}` - название оружия
- `{death_message}` - стандартное сообщение смерти
## API для разработчиков
### Получение сервисов
```java
// Получить ServiceRegistry
ServiceRegistry registry = plugin.getServiceRegistry();
// Получить сервис чата
ChatService chatService = registry.get(ChatService.class);
// Отправить глобальное сообщение
chatService.sendGlobalMessage(player, "Привет!");
// Получить сервис мутов
MuteService muteService = registry.get(MuteService.class);
// Проверить мут
if (muteService.isMuted(player.getUniqueId())) {
// Игрок замучен
}
```
### Создание кастомного фильтра
```java
public class MyFilter implements MessageFilter {
@Override
public FilterResult filter(Player player, String message) {
if (message.contains("запрещено")) {
return FilterResult.blocked("Сообщение заблокировано");
}
return FilterResult.ok(message);
}
}
```
## Известные проблемы
- Градиенты могут некорректно отображаться в старых версиях клиента (< 1.16)
- Некоторые фильтры могут блокировать легитимные сообщения (настраивается в `config/filters.yml`)
## Статистика проекта
- Версия: 1.5.5
- Строк кода: 9000+
- Конфигов: 10+
- Команд: 30+
## Вклад в проект
Мы приветствуем вклад в развитие проекта! Перед началом работы ознакомьтесь с:
- [Code of Conduct](CODE_OF_CONDUCT.md) - правила поведения в сообществе
- [Security Policy](SECURITY.md) - политика безопасности
### Как внести вклад
1. Fork репозитория
2. Создайте ветку для фичи (`git checkout -b feature/amazing-feature`)
3. Commit изменения (`git commit -m 'Add amazing feature'`)
4. Push в ветку (`git push origin feature/amazing-feature`)
5. Откройте Pull Request
### Типы вклада
- 🐛 Исправление багов
- ✨ Новые функции
- 📝 Улучшение документации
- 🎨 Улучшение UI/UX
- ⚡ Оптимизация производительности
- 🔒 Улучшение безопасности
## Лицензия
GNU General Public License v3.0 - см. файл [LICENSE](LICENSE)
Это свободное программное обеспечение. Вы можете распространять и/или модифицировать его в соответствии с условиями GNU General Public License версии 3.
## Автор
Loki Development Team
- Codeberg: @loki5512344
## Ссылки
- [Codeberg Repository](https://codeberg.org/loki5512344/Lochat)
- [Issues](https://codeberg.org/loki5512344/Lochat/issues)