### Added
- **Auto-Update System (All Platforms)**: ProtectCord now checks Modrinth directly for new releases instead of relying on a hardcoded version endpoint. When an update is found, it can automatically download, SHA-1 verify, and stage the new JAR for seamless updating on next restart.
- **Paper/Spigot/Folia**: Uses Bukkit's native `plugins/update/` folder — the server automatically applies the update on restart
- **BungeeCord**: Stages in `plugins/update/` (Waterfall and compatible forks apply automatically)
- **Velocity**: Downloads to `plugins/protectcord/pending-update/` and swaps the JAR on proxy shutdown
- **Forge**: Downloads to `config/protectcord/pending-update/` and swaps the mod JAR on server shutdown
- **Update Commands**: `/protectcord update status` shows current version, latest version, update state, and changelog summary. `/protectcord update check` forces an immediate Modrinth check. `/protectcord update apply` triggers download and staging.
- **In-Game Update Notifications**: Ops and admins are notified when they join if an update is available or staged, with actionable messages showing the version and how to apply it
- **Discord Webhook Update Alert**: When a new version is detected, a formatted Discord embed is sent via the existing webhook system showing the current version, new version, changelog summary, and Modrinth download link. Controlled by `discord-webhook.events.update: true`
- **Changelog Display**: `/protectcord update status` shows the first 5 lines of the Modrinth release changelog so admins can see what changed without leaving the game
- **Config Section**: New `auto-update` config block with `enabled` (default: true), `auto-download` (default: false — must opt-in), `check-interval-hours` (default: 12), and `notify-ops-on-join` (default: true)
- **Config Migration v3**: Existing configs automatically get the new auto-update section added on upgrade
### Changed
- Update checking now polls the Modrinth API directly (`api.modrinth.com/v2/project/y05wfnBZ/version`) instead of the custom CF Worker endpoint, with platform-specific loader filtering
- All network I/O for update checking and downloading runs on async threads — never blocks the main server thread
- Downloaded JARs are verified with SHA-1 hashes from Modrinth metadata before staging
- Tab completion now includes `update` with `status`, `check`, `apply` sub-completions
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" }