chatit/CHANGELOG.ru.md

189 lines
13 KiB
Markdown
Raw Normal View History

2024-10-21 10:57:00 +02:00
# Журнал изменений (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`.
- Улучшает согласованность и читаемость в кодовой базе, соответствуя стандартам именования.
### Сводка изменений
- **Улучшенная отладка**: С добавлением логирования ошибок в консоль разработчики теперь могут более эффективно отслеживать и исправлять проблемы.
- **Повышенная настраиваемость**: Возможность настройки текста сообщений предоставляет большую гибкость для администраторов серверов.
- **Повышенная стабильность**: Исправление ошибки таймаута тика обеспечивает более надежную работу мода, даже при высокой нагрузке.
- **Улучшение кодовой базы**: Переименование класса команды способствует более организованной и поддерживаемой структуре кода.
2024-10-21 10:57:00 +02:00
## [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` окрашены в заданные цвета.
### Изменено
- **Оптимизация кода**:
- Обработка сообщений перенесена в асинхронный поток для улучшения производительности.
- Улучшена структура кода для повышения читаемости и поддерживаемости.
- **Исправления**:
- Устранены предупреждения и ошибки, связанные с устаревшими методами.
- Исправлены проблемы с многопоточностью и доступом к игровым объектам.