diff --git a/CHANGELOG.md b/CHANGELOG.md index ae588a4..350f8fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,91 +1,100 @@ -# Журнал изменений (CHANGELOG) +# Changelog -Все заметные изменения в этом проекте будут задокументированы в этом файле. +All notable changes to this project will be documented in this file. -Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и этот проект придерживается [Семантического Версионирования](https://semver.org/lang/ru/). +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/). -## [0.1.3] - 2023-10-25 +## [0.1.3] - 2024-10-21 -### Добавлено +### Added -- **Конфигурируемый порог мата**: - - Значение порога для определения мата (`0.5`) теперь берётся из конфигурации (`profanity_threshold`), с дефолтным значением `0.5`. - - Позволяет настроить чувствительность фильтра мата. +- **Configurable Profanity Threshold**: + - The threshold value for determining profanity (`0.5`) is now sourced from the configuration (`profanity_threshold`) with a default value of `0.5`. + - Allows customization of the profanity filter sensitivity. -- **Конфигурируемое регулярное выражение для проверки мата**: - - Регулярное выражение `PROFANITY_REGEX` теперь берётся из конфигурации (`profanity_regex`). - - Дефолтное значение установлено в предоставленное регулярное выражение. - - Позволяет настраивать или расширять правила фильтрации мата. +- **Configurable Regular Expression for Profanity Detection**: + - The `PROFANITY_REGEX` pattern is now sourced from the configuration (`profanity_regex`). + - The default value is set to the provided regular expression. + - Enables customization or expansion of profanity filtering rules. -### Изменено +### Changed -- **Обновление `ProfanityChecker` и `ChatEventHandler`**: - - Модифицированы для использования новых настроек из конфигурации. - - Улучшена гибкость и настраиваемость мода. +- **Updated `ProfanityChecker` and `ChatEventHandler`**: + - Modified to utilize the new configuration settings. + - Enhanced the flexibility and configurability of the mod. ## [0.1.2] - 2024-10-21 -### Изменено +### Changed -- **Название мода**: - - Переименован мод с `Chatit` на `ChatIT` для согласованности и улучшения брендинга. +- **Mod Name**: + - Renamed the mod from `Chatit` to `ChatIT` for consistency and improved branding. ## [0.1.1] - 2024-10-21 -### Изменено +### Changed -- **Исправление метода получения уровня игрока**: - - Использование `receiver.level()` и `sender.level()` теперь обёрнуто в блок `try-with-resources` для корректной работы с ресурсами и устранения ошибок. +- **Fixed Player Level Retrieval Method**: + - Wrapped `receiver.level()` and `sender.level()` in a `try-with-resources` block to ensure proper resource management and eliminate errors. -- **Форматирование префиксов**: - - Убрано жирное форматирование (`ChatFormatting.BOLD`) из префиксов `[G]`, `[L]` и `[ERROR]`. Теперь буквы `G`, `L` и `ERROR` отображаются без жирного начертания, сохраняя цветовое выделение. +- **Prefix Formatting**: + - Removed bold formatting (`ChatFormatting.BOLD`) from the prefixes `[G]`, `[L]`, and `[ERROR]`. Now, the letters `G`, `L`, and `ERROR` are displayed without bold styling while retaining their color highlights. -- **Чистый код**: - - Удалены все комментарии из кода для повышения читаемости и поддерживаемости. +- **Clean Code**: + - Removed all comments from the code to enhance readability and maintainability. ## [0.1.0] - 2024-10-21 -### Добавлено +### Added -- **Локальный и глобальный чат**: - - Сообщения, начинающиеся с `!`, отправляются глобально всем игрокам. - - Сообщения без `!` отправляются локально игрокам в радиусе 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` окрашены в заданные цвета. +- **Local and Global Chat**: + - Messages starting with `!` are broadcasted globally to all players. + - Messages without `!` are sent locally to players within a 50-block radius. -### Изменено +- **Message Prefixes**: + - `[G]` for global messages, where `G` is lime-colored. + - `[L]` for local messages, where `L` is yellow-colored. + - `[ERROR]` for error messages, where `ERROR` is red-colored. -- **Оптимизация кода**: - - Обработка сообщений перенесена в асинхронный поток для улучшения производительности. - - Улучшена структура кода для повышения читаемости и поддерживаемости. -- **Исправления**: - - Устранены предупреждения и ошибки, связанные с устаревшими методами. - - Исправлены проблемы с многопоточностью и доступом к игровым объектам. +- **Profanity Filtering**: + - Integrated with an external API to check messages for profanity. + - Asynchronous message checking to prevent blocking the main server thread. + - Added a `regex` setting to use regular expressions when the API is unavailable. + +- **Adult Parameter for Players**: + - `/chatit adult` command to toggle the `adult` parameter for players. + - Player settings are saved to `config/chatit_player_settings.json`. + - Default `adult` value for new players is set in the configuration (`default_adult`). + +- **Message Filtering Based on `adult` Parameter**: + - If the sender's `adult` is off and the message contains profanity, the message is blocked and only sent to the sender with the `[ERROR]` prefix. + - Players with `adult` off do not see profanity messages from other players. + - Players with `adult` on can send and receive profanity messages. + +- **Configuration File**: + - Created `config/chatit.toml` with the following settings: + - `host_api`: URL of the API for profanity checking. + - `default_adult`: Default `adult` value for new players (true/false). + - `regex`: Use regular expressions when the API is unavailable (true/false). + +- **Asynchronous Processing**: + - Interactions with the API are handled asynchronously using `CompletableFuture`. + - Prevents blocking the main server thread during message checks. + +- **Error Handling**: + - When the API is unavailable and `regex=true`, regular expressions are used for profanity detection. + - On encountering errors, an error message is sent only to the sender. + +- **Message Formatting**: + - Prefixes `[G]`, `[L]`, `[ERROR]` are displayed with proper formatting. + - Letters `G`, `L`, and the word `ERROR` are colored appropriately. + +### Changed + +- **Code Optimization**: + - Moved message handling to an asynchronous thread to improve performance. + - Enhanced code structure for better readability and maintainability. + +- **Bug Fixes**: + - Removed warnings and errors related to deprecated methods. + - Fixed issues with multithreading and accessing game objects. diff --git a/CHANGELOG.ru.md b/CHANGELOG.ru.md new file mode 100644 index 0000000..ceaafe6 --- /dev/null +++ b/CHANGELOG.ru.md @@ -0,0 +1,91 @@ +# Журнал изменений (CHANGELOG) + +Все заметные изменения в этом проекте будут задокументированы в этом файле. + +Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и этот проект придерживается [Семантического Версионирования](https://semver.org/lang/ru/). + +## [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` окрашены в заданные цвета. + +### Изменено + +- **Оптимизация кода**: + - Обработка сообщений перенесена в асинхронный поток для улучшения производительности. + - Улучшена структура кода для повышения читаемости и поддерживаемости. +- **Исправления**: + - Устранены предупреждения и ошибки, связанные с устаревшими методами. + - Исправлены проблемы с многопоточностью и доступом к игровым объектам.