## [7.1] - 2026-09-06
### Added
- **Status Suggestion System**:
- `/status-suggest <format>`: Allows players to submit custom status suggestions directly in-game.
- `/status-suggest info`: Provides guidelines, submission limits, syntax examples, and live preview rendering.
- Bracket requirement enforcement (must start with `[` and end with `]`), configurable in `config.yml`.
- Configurable minimum/maximum length constraints (excluding color/formatting tags) and submission throttling per player.
- Interactive admin review tools:
- `/status-admin requests list` featuring interactive MiniMessage click actions (`[✔ Accept]`, `[✖ Deny]`).
- `/status-admin requests accept <id> <name>`: Automatically injects accepted status into `status-options.yml`, assigns it to the submitter, and notifies them.
- `/status-admin requests deny <id> <reason>`: Rejects the submission with an admin-specified explanation.
- Offline player notification delivery upon reconnection for approved or rejected requests.
- Persistent data storage for suggestion tracking in `status-requests.yml`.
- **Internal Testing & Quality Assurance**:
- Configured JUnit 5 (`junit-jupiter`) in Gradle build script.
- Added unit test suite (`ColorUtilTest`) validating MiniMessage gradients, Bukkit legacy hex format (`&x&r&r...`), bracket detection, and suggestion lifecycle records.
- **Permission Declarations**:
- Added explicit permission trees to `paper-plugin.yml` (`statusplugin.admin`, `statusplugin.reload`, `statusplugin.mod`).
### Changed
- **Platform & Toolchain Migration**:
- Updated target Paper API to `26.2.build.+` with `api-version: '26.2'`.
- Configured Gradle Java toolchain for Java 25.
- Enabled compiler warnings (`-Xlint:all`, `-Xlint:-processing`) and resource filtering for `paper-plugin.yml`.
- **Scoreboard Team & Sorting Management**:
- Overhauled team management in `TabListManager` and `NametagManager` to prevent team collision and scoreboard pollution.
- Added startup and shutdown cleanup routines targeting stale `sp_` and `sp_sort_` scoreboard teams.
- Enforced thread-safe operations for scoreboard modifications and tab list header/footer updates.
- **Color & Placeholder Utilities**:
- Added support for Bukkit legacy hex syntax (`&x&6&5&F&F&6&4`), standard hex (`&#rrggbb`), and MiniMessage tags.
- Hardened `PlaceholderUtil` against asynchronous execution with main-thread synchronization dispatch.
- Added HTTP resource disposal (`OkHttpClient` connection pool & dispatcher cleanup) in `VersionChecker.shutdown()`.
### Fixed
- Fixed integer overflow potential with rotating tab list index (`rotatingIndex.get() & Integer.MAX_VALUE`).
- Fixed duplicate read timeout initialization in `VersionChecker`.
- Fixed tab list list-name async invocation warning by checking `Bukkit.isPrimaryThread()`.
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" }