[1] Added BungeeCord proxy module, enforces bans at the network login stage, preventing banned players from being redirected to the lobby
[2] Added Velocity proxy module with the same proxy-level enforcement
[3] Added plugin message relay on both proxy modules for cross-server punishment sync
[4] Added player head thumbnail in Discord webhook embeds (Crafatar integration, configurable per target)
[5] Added shadow mute staff notification (previously missing, caused "Missing message: shadow_mute_notification")
[6] Added full tab completion across all commands, offline players, network-wide players, and preset filtering by type and permission
[7] Added cross-server player name cache with real-time updates via plugin messaging
[8] Added configurable footer icon for webhook embeds
[9] Added webhook assignments for all punishment types including shadow mute, IP ban revocations, and IP mute revocations
[10] Fixed obfuscation breaking shaded libraries at runtime
[11] Fixed webhook embed color for revocations (was neon green, now matches documented value)
[12] Fixed webhook IP address detection using string matching instead of proper enum comparison
[13] Migrated license and version check endpoints to api.deltura.net
[1] Fixed critical race condition in ban evasion detection
[2] Added IP-based ban checking on player join
[3] Enhanced Bedrock player enforcement and IP tracking
[4] Fixed players bypassing bans while evasion checks were running
[5] Added sequential ban checking: UUID -> IP -> Evasion (all awaited)
[6] Improved async ban enforcement to prevent chat before kick
[7] Added getActiveIpBan(ip) method for IP-based ban detection
[8] Fixed Custom Values not appearing correctly
[1] Added offline player support
[2] Added Bedrock/Floodgate support
[3] Fixed shadow mutes not working on legacy AsyncPlayerChatEvent
[4] Fixed staff unable to punish players with equal rank (default vs default)
[5] Fixed config files resetting after reload due to YAML syntax errors
[6] Optimized MySQL with server-side prepared statements and smart caching
[7] Removed all blocking operations, fully non-blocking punishment system
[1] Implemented H2 to MySQL migration tool (/justbans migrate-to-mysql)
[2] Major Webhook Overhaul:
- Multi-target support (e.g., game-mode specific webhooks)
- Full template customization (title, color, footer)
- Source server identification ({server} placeholder)
[3] Fixed command blocking bypass for muted players (synchronous cache check)
[4 Full compatibility with Paper and Folia (Thread-safe execution)
[5] Performance improvements in database and cache handling
[1] Fixed cross-server unban issue
[2] Implemented/punish <player> <preset> [-s]command for unified punishment via presets
[3] Added network sync for unpunishments
[4] Fixed ban override logic (existing punishments are now deactivated instead of blocking)
[1] Added translation support for hardcoded strings (Unknown, Expired, etc.)
[2] Fixed "Permanent" reason display bug
[3] Fixed Tab Completion for /checkid and /kick
[4] Clarified Kick command behavior (Instant)
