# Журнал изменений (CHANGELOG) Все заметные изменения в этом проекте будут задокументированы в этом файле. Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и этот проект придерживается [Семантического Версионирования](https://semver.org/lang/ru/). ## [0.1.4] - 2024-10-28 ### Добавлено - **Логирование ошибок в консоль**: - Реализовано комплексное логирование ошибок в консоль. - Облегчает отладку и мониторинг, предоставляя подробные сообщения об ошибках во время выполнения. - **Настраиваемый текст сообщений**: - Введена возможность настройки текста сообщений через конфигурацию. - Пользователи теперь могут изменять стандартные сообщения, чтобы они лучше соответствовали стилю общения сервера. ### Исправлено - **Ошибка таймаута тика**: - Исправлена проблема с таймаутом тика, которая вызывала зависание или сбой сервера при высокой нагрузке. - Повышена стабильность и производительность мода за счет обеспечения более плавного выполнения циклов тиков. ### Изменено - **Переименование класса команды**: - Переименован класс команды с `ChatitCommand.java` на `ChatITCommand.java`. - Улучшает согласованность и читаемость в кодовой базе, соответствуя стандартам именования. ### Сводка изменений - **Улучшенная отладка**: С добавлением логирования ошибок в консоль разработчики теперь могут более эффективно отслеживать и исправлять проблемы. - **Повышенная настраиваемость**: Возможность настройки текста сообщений предоставляет большую гибкость для администраторов серверов. - **Повышенная стабильность**: Исправление ошибки таймаута тика обеспечивает более надежную работу мода, даже при высокой нагрузке. - **Улучшение кодовой базы**: Переименование класса команды способствует более организованной и поддерживаемой структуре кода. ## [0.1.3] - 2024-10-21 ### Добавлено - **Конфигурируемый порог мата**: - Значение порога для определения мата (`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` включенным могут отправлять и получать сообщения с матами. - **Конфигурационный файл**: - Создаётся файл `config/chatit.toml` с настройками: - `host_api`: URL API для проверки мата. - `default_adult`: Значение `adult` по умолчанию для новых игроков (true/false). - `regex`: Использовать регулярное выражение при недоступности API (true/false). - **Асинхронная обработка**: - Взаимодействие с API происходит асинхронно с использованием `CompletableFuture`. - Предотвращает блокировку основного потока сервера при проверке сообщений. - **Обработка ошибок**: - При недоступности API и `regex=true` используется регулярное выражение для проверки мата. - При возникновении ошибок отправляется сообщение об ошибке только отправителю. - **Форматирование сообщений**: - Префиксы `[G]`, `[L]`, `[ERROR]` отображаются с корректным форматированием. - Буквы `G`, `L` и слово `ERROR` окрашены в заданные цвета. ### Изменено - **Оптимизация кода**: - Обработка сообщений перенесена в асинхронный поток для улучшения производительности. - Улучшена структура кода для повышения читаемости и поддерживаемости. - **Исправления**: - Устранены предупреждения и ошибки, связанные с устаревшими методами. - Исправлены проблемы с многопоточностью и доступом к игровым объектам.