Все заметные изменения в этом проекте будут задокументированы в этом файле.
Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и этот проект придерживается [Семантического Версионирования](https://semver.org/lang/ru/).
- Добавлена команда `/r` для быстрого ответа на последнее полученное приватное сообщение.
- Позволяет игрокам быстро отправлять ответы без необходимости указывать имя получателя.
- **Utils.java**:
- **Логирование сообщений**:
- Реализовано логирование приватных и глобальных сообщений в отдельные файлы `logs/private_messages.log` и `logs/global_messages.log`.
- Каждое сообщение логируется с указанием времени, IP-адреса отправителя, имен игроков и содержания сообщения.
- **Кликабельность ников и ссылок в чате**:
- Добавлена возможность кликабельности ников игроков в чате. При клике на ник игрока предлагается отправить приватное сообщение.
- Внедрена кликабельность ссылок в сообщениях чата. Валидные URL автоматически преобразуются в кликабельные ссылки, которые открываются в браузере игрока при клике.
- Реализована проверка валидности ссылок перед их преобразованием в кликабельные компоненты.
- Значение порога для определения мата (`0.5`) теперь берётся из конфигурации (`profanity_threshold`), с дефолтным значением `0.5`.
- Позволяет настроить чувствительность фильтра мата.
- **Конфигурируемое регулярное выражение для проверки мата**:
- Регулярное выражение `PROFANITY_REGEX` теперь берётся из конфигурации (`profanity_regex`).
- Дефолтное значение установлено в предоставленное регулярное выражение.
- Позволяет настраивать или расширять правила фильтрации мата.
### Изменено
- **Обновление `ProfanityChecker` и `ChatEventHandler`**:
- Модифицированы для использования новых настроек из конфигурации.
- Улучшена гибкость и настраиваемость мода.
## [0.1.2] - 2024-10-21
### Изменено
- **Название мода**:
- Переименован мод с`Chatit` на `ChatIT` для согласованности и улучшения брендинга.
## [0.1.1] - 2024-10-21
### Изменено
- **Исправление метода получения уровня игрока**:
- Использование `receiver.level()` и `sender.level()` теперь обёрнуто в блок `try-with-resources` для корректной работы с ресурсами и устранения ошибок.
- **Форматирование префиксов**:
- Убрано жирное форматирование (`ChatFormatting.BOLD`) из префиксов `[G]`, `[L]` и `[ERROR]`. Теперь буквы `G`, `L` и `ERROR` отображаются без жирного начертания, сохраняя цветовое выделение.
- **Чистый код**:
- Удалены все комментарии из кода для повышения читаемости и поддерживаемости.
## [0.1.0] - 2024-10-21
### Добавлено
- **Локальный и глобальный чат**:
- Сообщения, начинающиеся с`!`, отправляются глобально всем игрокам.
- Сообщения без `!` отправляются локально игрокам в радиусе 50 блоков.
- **Префиксы сообщений**:
-`[G]` для глобальных сообщений, где `G` лаймового цвета.
-`[L]` для локальных сообщений, где `L` жёлтого цвета.
-`[ERROR]` для сообщений об ошибках, где `ERROR` красного цвета.
- **Проверка на маты**:
- Интеграция с внешним API для проверки сообщений на наличие мата.
- Асинхронная проверка сообщений, чтобы избежать блокировки основного потока сервера.
- Добавлена настройка `regex` для использования регулярного выражения при недоступности API.
- **Параметр `adult` для игроков**:
- Команда `/chatit adult` для переключения параметра `adult`у игрока.
- Настройки игроков сохраняются в файл `config/chatit_player_settings.json`.
- Значение `adult` по умолчанию для новых игроков задаётся в конфигурации (`default_adult`).
- **Фильтрация сообщений на основе параметра `adult`**:
- Если у отправителя `adult` выключен и сообщение содержит маты, оно блокируется и отправляется только ему с префиксом `[ERROR]`.
- Игроки с`adult` выключенным не видят сообщения с матами от других игроков.
- Игроки с`adult` включенным могут отправлять и получать сообщения с матами.