chatit/CHANGELOG.ru.md

189 lines
13 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.

# Журнал изменений (CHANGELOG)
Все заметные изменения в этом проекте будут задокументированы в этом файле.
Формат основан на [Keep a Changelog](https://keepachangelog.com/ru/1.0.0/), и этот проект придерживается [Семантического Версионирования](https://semver.org/lang/ru/).
## [0.2] - 2024-11-10
### Добавлено
- **ChatITCommand.java**:
- **Команда `/r`**:
- Добавлена команда `/r` для быстрого ответа на последнее полученное приватное сообщение.
- Позволяет игрокам быстро отправлять ответы без необходимости указывать имя получателя.
- **Utils.java**:
- **Логирование сообщений**:
- Реализовано логирование приватных и глобальных сообщений в отдельные файлы `logs/private_messages.log` и `logs/global_messages.log`.
- Каждое сообщение логируется с указанием времени, IP-адреса отправителя, имен игроков и содержания сообщения.
- **Кликабельность ников и ссылок в чате**:
- Добавлена возможность кликабельности ников игроков в чате. При клике на ник игрока предлагается отправить приватное сообщение.
- Внедрена кликабельность ссылок в сообщениях чата. Валидные URL автоматически преобразуются в кликабельные ссылки, которые открываются в браузере игрока при клике.
- Реализована проверка валидности ссылок перед их преобразованием в кликабельные компоненты.
## [0.1.9] - 2024-10-31
### Добавлено
- **Config.java**:
- Добавлен hot-swap режимов фильтрации мата (`off`, `regex`, `api`).
- Реализована возможность изменения режима фильтрации мата во время работы сервера через команду `/chatit mode (off|regex|api)`.
- **ChatITCommand.java**:
- Добавлены кастомные личные сообщения на замену команд `/w`, `/tell`, `/msg`.
- Обновлена логика отправки и форматирования приватных сообщений.
### Изменено
- **ProfanityChecker.java**:
- Обновлена логика проверки мата с учётом новых режимов фильтрации.
## [0.1.8] - 2024-10-30
### Изменено
- **ChatEventHandler.java**:
- Изменен цвет сообщений с белого на жёлтый.
## [0.1.7] - 2024-10-23
### Изменено
- **ProfanityChecker.java**:
- Установлена версия HTTP на HTTP/1.1 для HttpClient.
## [0.1.6] - 2024-10-21
### Исправлено
- **Проблема с глобальным чатом**:
- Исправлены ошибки, влияющие на работу глобального чата.
## [0.1.5] - 2024-10-21
### Исправлено
- **Проблема с локальным чатом**:
- Исправлены ошибки, влияющие на работу локального чата.
## [0.1.4] - 2024-10-21
### Добавлено
- **Логирование ошибок в консоль**:
- Реализовано комплексное логирование ошибок в консоль.
- Облегчает отладку и мониторинг, предоставляя подробные сообщения об ошибках во время выполнения.
- **Настраиваемый текст сообщений**:
- Введена возможность настройки текста сообщений через конфигурацию.
- Пользователи теперь могут изменять стандартные сообщения, чтобы они лучше соответствовали стилю общения сервера.
### Исправлено
- **Ошибка таймаута тика**:
- Исправлена проблема с таймаутом тика, которая вызывала зависание или сбой сервера при высокой нагрузке.
- Повышена стабильность и производительность мода за счет обеспечения более плавного выполнения циклов тиков.
### Изменено
- **Переименование класса команды**:
- Переименован класс команды с `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` окрашены в заданные цвета.
### Изменено
- **Оптимизация кода**:
- Обработка сообщений перенесена в асинхронный поток для улучшения производительности.
- Улучшена структура кода для повышения читаемости и поддерживаемости.
- **Исправления**:
- Устранены предупреждения и ошибки, связанные с устаревшими методами.
- Исправлены проблемы с многопоточностью и доступом к игровым объектам.