chatit/CHANGELOG

66 lines
5.4 KiB
Plaintext
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.1.1] - 2023-10-25
### Изменено
- **Исправление метода получения уровня игрока**:
- Использование `receiver.level()` и `sender.level()` теперь обёрнуто в блок `try-with-resources` для корректной работы с ресурсами и устранения ошибок.
- **Форматирование префиксов**:
- Убрано жирное форматирование (`ChatFormatting.BOLD`) из префиксов `[G]`, `[L]` и `[ERROR]`. Теперь буквы `G`, `L` и `ERROR` отображаются без жирного начертания, сохраняя цветовое выделение.
- **Чистый код**:
- Удалены все комментарии из кода для повышения читаемости и поддерживаемости.
## [0.1.0] - 2023-10-25
### Добавлено
- **Локальный и глобальный чат**:
- Сообщения, начинающиеся с `!`, отправляются глобально всем игрокам.
- Сообщения без `!` отправляются локально игрокам в радиусе 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` окрашены в заданные цвета.
### Изменено
- **Оптимизация кода**:
- Обработка сообщений перенесена в асинхронный поток для улучшения производительности.
- Улучшена структура кода для повышения читаемости и поддерживаемости.
- **Исправления**:
- Устранены предупреждения и ошибки, связанные с устаревшими методами.
- Исправлены проблемы с многопоточностью и доступом к игровым объектам.