You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
H2 Database Migration: Replaced JSON-based storage with an embedded H2 database for more reliable and persistent IP binding data. Existing data is automatically migrated from the legacy format on first load.
Enhanced Login Pipeline: Overhauled pre-login checks for UUID and IP binding with improved subnet-aware logic and more precise kick messages that explain exactly why access was denied.
Expanded Message Customization: Added new configurable messages for additional block scenarios (uuid-ip-mismatch, ip-uuid-mismatch, max-accounts) alongside the existing fallback message.
New Features & Tools
Improved Discord Embeds: Webhook alerts now include richer detail and improved formatting for better log visibility at a glance.
Config Auto-Update Improvements: Missing debug and security options (including verbose and max-accounts-per-ip) are now automatically added to your config.yml when upgrading.
Commands & Permissions
/ipforce <player>: New admin command (ipauth.admin) that unbinds a player's UUID-IP pair without kicking them — their next join will register a fresh binding.
Security & Stability
Safer URL Handling: Replaced the deprecated URL constructor with URI.create() to prevent malformed URL errors.
Cleaner Reload Logic: Removed unused IPStorage dependency from IPReloadCommand and updated instantiation to match the refactored storage layer.
Storage Initialization Refactor: Replaced storage.load() with storage.initialize() for a more predictable and reliable startup sequence.