## [2.0.0] - 2026-06-21
### 🎨 Major Features
#### Dialog UI Authentication
- **Implemented graphical pre-join authentication** using Paper's Dialog API
- Players now see beautiful dialog boxes for registration and login instead of chat commands
- Click-based authentication with button inputs
- Seamless integration with server join flow
- Full player lockdown until authentication completed
- Modern, user-friendly interface
#### AuthMe Migration System
- **Added `/sparklogin migrate authme` command** for one-click migration from AuthMeReloaded
- Supports SHA256 and BCRYPT hash types from AuthMe
- Automatic detection of AuthMe database backend (SQLite, MySQL, MariaDB)
- Reads AuthMe configuration from `plugins/AuthMe/config.yml`
- Preserves all player passwords - no resets required
- **Auto-upgrade to BCrypt** on first successful login after migration
- Creates backup before migration at `plugins/SparkLogin/backups/pre-authme-migration-<timestamp>.db`
- Progress tracking with action bar display
- Detailed migration logging at `plugins/SparkLogin/logs/authme-migration.log`
- Batch import for efficient processing
- Statistics summary after migration (imported, skipped, unsupported, failed)
### ⚡ Performance Optimizations
#### Account Caching
- **Implemented high-performance account caching** using Caffeine library
- Reduces database queries by caching frequently accessed accounts
- Configurable TTL (default: 5 minutes) and max size (default: 1000)
- Sliding expiration on cache reads
- Cache invalidation on account updates (save, update, delete)
- Configurable via `cache.account-ttl-minutes` and `cache.max-size` in config.yml
### 🎮 User Experience
#### Chat Messages
- **Added chat messages** after successful login: "Logged In. Enjoy!"
- **Added chat messages** after successful registration: "Successfully registered. Enjoy!"
- Enhanced user feedback for authentication events
#### Command Registration
- **Registered `/sparklogin migrate authme` command** in plugin.yml
- Updated tab completion for migrate command
- Added permission: `sparklogin.admin`
### 🐛 Bug Fixes
- Fixed SHA256 password verification to match AuthMe's exact implementation
- Resolved issues with AuthMe hash type detection
- Fixed cache invalidation on account updates
### 🔄 Breaking Changes
- **Plugin version updated to 2.0.0**
- Database schema migration required (automatic on first run)
- Existing accounts will have `hash_type` set to BCRYPT by default
---
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" }