# Changelog
All notable changes to this project will be documented in this file.
This project adheres to Keep a Changelog and Semantic Versioning (when applicable).
### Added
- Name Registry to record names that have successfully verified as premium (name -> premium UUID).
- Policy: knownPremiumDenyOffline — once a name verifies as premium, deny offline fallback for that name on future failures.
- Policy: allowOfflineForUnknownOnly — allow offline fallback only for names that have never verified as premium.
- Recent IP Grace window (configurable TTL) to temporarily allow premium session if same name+IP recently verified.
- Admin command: `/trueuuid link <name>` with dry-run and backups to migrate/merge offline data to the premium UUID.
- Short Title subtitles configuration: `auth.offlineShortSubtitle`, `auth.onlineShortSubtitle`.
### Changed
- Configuration documented and expanded:
- `auth.knownPremiumDenyOffline = true`
- `auth.allowOfflineForUnknownOnly = true`
- `auth.recentIpGrace.enabled = true`
- `auth.recentIpGrace.ttlSeconds = 300` (defaults)
- Improved user messaging: clearer offline fallback chat message.
### Fixed
- Client sometimes only showed “Disconnected” without reason on Forge 1.20.1 login stage:
- Server now explicitly sends Login and Game disconnect packets before closing to ensure the client displays the reason.
### Notes
- Recent IP Grace is for usability, not strong security. Use a small TTL and avoid shared networks if possible.
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" }