## [1.0.8] - 2026-03-31
### New Features
- **Standardized Messaging System**:
- Replaced hardcoded messages with localized strings via `LanguageManager`.
- Fully localized command usage strings (`/report`, `/viewreport`, `/setreportstatus`) for all supported languages.
- Added localized feedback for the `/ar reload` command.
- **Custom Reason Support in GUIs**:
- Added "Custom Reason" option to the **Book GUI**.
- Added "Custom Reason" (Writable Book) icon to the **Container GUI** for players to submit their own reasons in chat.
- **Enhanced Visual Aesthetics**:
- Implemented high-fidelity **MiniMessage gradients** for report titles, details, and notifications.
- Simplified GUI design by removing bold text for a cleaner, modern look.
- Redesigned the container separator for better visual structure.
- **Improved Global Prefix**: The plugin prefix now supports MiniMessage gradients and is consistently applied across all messages using the `{prefix}` placeholder.
### Improvements & Bug Fixes
- **Hybrid Message Parsing**: Implemented a robust "Hybrid Parser" for messages that contain both MiniMessage tags and legacy color codes (e.g., gradients combined with `&f`). This resolves a critical `ParsingException` where MiniMessage would crash when encountering legacy formatting symbols like `§`.
- **FastStats Reliability**: Fixed a `NullPointerException` (NPE) that occurred during FastStats initialization if the database connection failed or was slow to respond.
- **Streamlined Initialization**: Simplified console output during startup by removing verbose database connection logs and retry spam. Initialization failures are now reported as a single, clear sentence before the plugin disables itself.
- **GUI Pagination Fix**: Resolved a critical indexing error in the `Reason Selector` GUI that prevented "Next Page" from working when reasons spanned multiple pages.
- **Robust Reason Selection**: Implemented `PersistentDataContainer` (PDC) to identify report reasons in the GUI. This makes reason selection immune to translation changes and fixes a bug where non-English reasons would fail to submit.
- **Smart Message Parsing**: Enhanced `MessageUtils` with a heuristic to detect legacy color codes versus MiniMessage tags. This fixes a rendering bug where command usage strings like `<player>` were being incorrectly parsed as broken MiniMessage.
- **Dynamic Prefix Replacement**: Re-engineered the `LanguageManager` to replace `{prefix}` _before_ MiniMessage parsing, preventing crashes when the prefix contains non-legacy characters.
- **Robust Category Handling**: Switched to `PersistentDataContainer` for identifying report categories in GUIs, ensuring stability across all localized versions.
- **Unified Feedback**: Standardized status update notifications so that using the `/setreportstatus` command and the GUI management buttons provide the same detailed feedback.
- **Improved Input Validation**:
- Validated report categories and custom reasons directly in the `/report` command.
- Fixed length validation for custom reasons to correctly use localized error messages.
- **Language Cleanup**: Removed redundant and unused keys from language files (`status-update-success`, `description-too-short`, etc.) to reduce clutter and improve maintainability.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }