[1] Fixed critical chat input bug - "cancel" and other input messages no longer appear in global chat when creating teams or using GUIs
[2] Fixed team chat bleeding into global chat - changed event priority from HIGHEST to NORMAL to process after ChatInputManager
[3] Fixed ChatInputManager event priority - changed from LOWEST to HIGHEST to cancel events before other chat handlers process them
[4] Added gradient color support for team names - use/team setcolor #RRGGBB #RRGGBBto create beautiful gradient effects
[5] Added hex color validation - ensures proper #RRGGBB format before applying gradient colors
[6] Added database support for gradient colors - newgradient_startandgradient_endcolumns in donut_teams table
[7] Enhanced/team setcolorcommand - now supports three modes: named colors (RED, BLUE), hex gradients (#FF0000 #00FF00), and reset
[8] Added gradient color persistence - gradient colors are saved to database and loaded on server restart
[9] Improved color command usage messages - shows examples for both named colors and gradient hex colors
[10] Fixed team chat event handling - added proper cancelled event checks to prevent duplicate processing
[11] EternalCombat integration fixed
[1] Fixed EternalCombat integration initialization - increased API initialization delay from 1 second to 3 seconds to allow EternalCombat API to fully load
[2] Improved error handling in EternalCombat hook - better error messages distinguish between "not installed" vs "API not ready" scenarios
[3] Enhanced reflection based integration - clearer logging shows exactly which step failed during initialization
[4] Fixed "API classes not found" error appearing after "hook created" message - now it waits for API to be ready before attempting reflection
[5] Added error messages with indicators for integration status
[6] Improved initialization feedback
[1] Fixed critical teleport warmup bug - running/team homeor/team warptwice before warmup completes no longer orphans tasks and blocks future teleports
[2] Added proper task cancellation logic - existing warmup tasks are now cancelled before creating new ones, preventing task tracking corruption
[3] Fixed<team_color>placeholder in team chat - now outputs valid MiniMessage color tags (<dark_red>,<blue>, etc.) instead of plain text color names
[4] Converted ChatColor enum to MiniMessage format across all chat handlers - team colors now display correctly in chat messages
[5] Fixed team color display in TeamChatListener - local team chat now properly renders team colors set via/team setcolor
[6] Fixed team color display in TeamMessageCommand -/tmcommand now properly renders team colors in cross-server environments
[7] Fixed team color display in Redis cross-server chat - TeamMessageSubscriber now converts ChatColor to MiniMessage tags for Redis-based team chat
[8] Fixed team color display in MySQL cross-server chat - TeamManager now converts ChatColor to MiniMessage tags for MySQL-based team chat synchronization
[9] Enhanced warmup cancellation feedback - players now receive "teleport_cancelled" message when spamming teleport commands
[10] Applied teleport fix to all three warmup methods -initiateLocalTeleport(),startNamedWarpTeleportWarmup(), andstartWarpTeleportWarmup()all properly cancel existing tasks
[1] Fixed critical server watchdog timeout - removedCompletableFuture.join()blocking main thread ingetPlayerTeam()method
[2] Fixed player quit crashes -unloadPlayer()now fully asynchronous to prevent database overload during mass disconnects
[3] Eliminated console spam - backup snapshot messages reduced from INFO to FINE logging level (only visible with debug enabled)
[4] Optimized player disconnect handling - team cache cleanup now runs asynchronously to prevent server thread blocking
[5] Fixed race conditions during concurrent player quits - synchronized cache access prevents data corruption
[6] Added Team Alliances System - complete ally management with GUI, commands, and cross-server synchronization
[7] Added/team allycommand with 7 subcommands - add, remove, accept, deny, toggle, list, and GUI access
[8] Added Ally GUI - intuitive interface for managing alliances and viewing pending requests
[9] Added EternalCombat integration - prevents combat-tagged players from exploiting team commands via reflection-based hook
[10] Added configurable combat restrictions - 9 separate toggles for blocking actions during combat (teleport, leave, disband, etc.)
[11] Added combat tag messages - shows remaining combat time when actions are blocked
[12] Added database tables -donut_team_alliesanddonut_team_ally_requestswith automatic migration
[13] Added 27 new messages - 17 for ally system, 10 for combat integration
[14] Added full tab completion - ally commands with subcommand and team name suggestions
[15] Optimized database queries - indexed ally tables prevent performance degradation
[16] Fixed potential memory leaks - proper cleanup in async operations and hook shutdown
[17] Added validation-first approach - all ally operations validate before database writes
[18] Enhanced cross-server sync - ally changes propagate via Redis/MySQL to all servers
[19] Fixed team uncaching logic - prevents premature cache eviction when players quit
[1] Fixed/team warpteleportation warmup system - now properly reads warmup duration fromteam_warps.warmup_secondsconfiguration
[2] Fixed warp creation limit enforcement - corrected config path fromsettings.max_warps_per_teamtoteam_warps.max_warps
[3] Overhauled cost deduction system - all monetary/item costs now charged AFTER successful validation and operation completion
[4] Fixed team creation cost bug - players no longer charged when team creation fails due to invalid names, tags, or database errors
[5] Fixed warp creation cost bug -/team setwarpno longer charges players when warp creation fails or permissions are insufficient
[6] Fixed home setting cost bug -/team sethomeno longer charges players when operation fails or permissions are insufficient
[7] Fixed teleportation cost bugs -/team homeand/team warpno longer charge when teleportation is cancelled or fails
[8] Added ConfigManager methodgetWarpWarmupSeconds()for centralized warp warmup configuration access
[9] Implemented validation-first payment system - all cost-based features now validate permissions/conditions before charging
[10] Enhanced error handling with payment rollback - failed operations now properly refund costs when payment succeeds but operation fails
[11] Fixed cross-world warp teleportation failures - resolved silent teleportation bugs caused by locale-dependent coordinate formatting
[12] Fixed teleportation message accuracy - warp teleports now correctly display warp name instead of generic "team home" message
[1] Added GUI-based team creation with color selection menu (configurable viasettings.creation.use_gui_color_selection)
[2] Fixed MiniMessage parsing error in color selection GUI by replacing legacy color codes with proper MiniMessage format
[3] Fixed%justteams_online_members%placeholder to work correctly across servers using player sessions database
[4] Added missing%justteams_offline_members%placeholder for cross-server offline member counting
[5] Added missing%justteams_team_color%placeholder that returns team color name (e.g., RED, BLUE, GOLD)
[6] Added missing documented placeholders:%justteams_team_balance%,%justteams_team_max_size%,%justteams_team_kills%,%justteams_team_deaths%,%justteams_team_kdr%,%justteams_pvp_status%
[7] Fixed cross-server invitation acceptance by checking database invites when local cache is empty
[8] AddedisPlayerOnlineAnywhere()method to check player presence across all servers viadonut_player_sessionstable
[9] Fixed ender chest lock acquisition to handle stale locks (>5 minutes) and inactive server locks (>2 minutes)
[10] Fixed cross-server team member online status display in GUI - now shows players online on other servers correctly
[1] Fixed tag color codes not persisting after server restart
[2] Added automatic database migration to expand tag column for existing servers without data loss
[3] Fixed tag truncation issue where color codes (e.g.,&c&lRED) were silently cut off at 6 characters
[4] Added permission check for/team setcolorcommand (permission:justteams.setcolor, default: true)
[5] Fixed ghost-input bug where a single chat message could satisfy multiple sequential prompts
[6] Added missing help entries for/team admin homeand/team admin enderchest
[7] Added Compass icon toAdminTeamManageGUIfor admin teleport to team home
[1] Fixed critical database deadlocks (connection sharing)
[2] Removed redundant validation (connection leaks)
[3] Added warp_count caching to Team object
[4] PAPI now uses cached data (less DB pressure)
[5] Synced warp cache across servers
[6] Removed duplicate team name message
[7] Added color selection during team creation (configurable default is false)
[8] Fixed disband confirmation (2 steps now!)
[9] Cancel button works for all inputs
[10] Leaderboard shows 28 teams (was 14)
[11] Disabled features are no longer displayed in the GUI. Instead, they are replaced with the placeholder item
[12] Other fixes & improvements
