justTeams v2.6.0

A Minecraft premium modern teams plugin
FEATURES

[1] Team Tier Upgrade System. Teams start at tier 1 and spend bank funds to progress through 5 tiers unlocking larger max members (10→25), a bigger ender chest (3→6 rows), a PvP damage bonus (0→5%), and a home cooldown reduction (0→50%). Owner-only purchase. Every perk is hard capped (at the moment) in code so no config mistake can produce one-shot PvP or 500-player teams. Opens from the new nether star button in the team GUI
[2] Members can now use /team sethome when the owner explicitly grants them the permission via the permissions GUI. Previously this toggle only worked for Co-owners. Disabled by default
[3] Co-owners can promote Members to Co-owner when the owner grants them the new "Promote to Co-owner" permission. New toggle in the Co-owner permissions GUI, owner-only, disabled by default
[4] PvP toggle cooldown - configurable cooldown between PvP status changes per team. Bypass with justteams.bypass.pvp.cooldown permission. Configure with team_pvp.toggle_cooldown (default: 300 seconds, set to 0 to disable)
[5] Flight is disabled when entering PvP combat. Works for creative-mode fly and elytra. Configure with team_pvp.disable_fly_on_combat (default: false). Skips spectators and creative players who have joined legitimately
[6] New PAPI placeholder %justteams_pvp_toggle_cooldown% — returns remaining cooldown seconds with "s" suffix, or "Ready" when no cooldown is active
[7] FastStats anonymous metrics integration with optional error tracking for uncaught exceptions. Disable entirely with settings.faststats.enabled: false
[8] Configurable slot layouts for all dynamic GUI lists. Place member heads, warps, allies, invites, and blacklist entries on exact slot indices via a slots: list in gui.yml. Unused slots become free space for fillers and decorations
[9] Per-alias enable/disable toggles in commands.yml for /guild, /clan, /party, /guildmsg, /clanmsg, /partymsg.
[10] /party and /partymsg ship disabled by default to avoid conflicts with common network plugins
[11] In-game admin notification when PacketEvents is not installed. Shows a clickable Modrinth download link on join, toggleable via settings.notify-missing-packetevents

CRITICAL FIXES
[12] NoClassDefFoundError on startup when PacketEvents was not installed. GlowManager now only initializes when PacketEvents is present and all call sites are null-guarded so the plugin boots cleanly without it
[13] /guild, /clan, /guildmsg, /clanmsg were registering even when disabled in commands.yml because they were hardcoded in plugin.yml. Removed from plugin.yml, now registered dynamically by AliasManager only when enabled. No ghost commands

IMPROVEMENTS
[14] Leaderboard category GUI is now fully translatable. Title, item names (Top Kills, Top Balance, Top Members), and lore all read from messages.yml
[15] Leaderboard view GUI title now renders MiniMessage formatting correctly instead of showing raw gradient tags
[16] Startup banner shows PacketEvents status alongside Vault, PAPI, and PvPManager

CONFIGURATION
[17] New settings.faststats.enabled boolean (default: true)
[18] New settings.notify-missing-packetevents boolean (default: true)
[19] New command-aliases section in commands.yml with per-alias enabled flags
[20] New slots: list on every dynamic GUI section in gui.yml. Remove the list to fall back to the default slot range
[21] Version check endpoint updated from api.kotori.ink to api.deltura.net
[22] New team_pvp.toggle_cooldown integer - seconds between PvP toggle uses per team (default: 300, 0 to disable)
[1] Fixed critical memory leak in GlowManager
[1] Fixed team chat message duplication with some chat formatting plugins (AlonsoChat, etc.)
[2] Fixed leaderboard colored_tag and gradient_tag placeholders
[3] Fixed gradient display in TAB lists and scoreboards
[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 LOWEST to process before other chat handlers
[3] Fixed ChatInputManager event priority - now properly intercepts internal messages before TeamChatListener processes them
[4] Fixed %justteams_display% placeholder - now correctly replaces angle-bracket tags instead of returning literal placeholder text
[5] Fixed Redis NumberFormatException - improved parsing logic to handle data fields containing pipe characters
[6] Fixed Redis TEAM_CREATED handler - added missing handler to prevent "Unknown Redis update type" warnings
[7] Added legacy color code support - /team setcolor now accepts &c, &a, &e (ampersand) and §c, §a, §e (section sign) formats
[8] Added gradient color support for all color placeholders - %justteams_color_tag%, %justteams_colored_tag%, and %justteams_gradient_tag% now support hex gradients
[9] Added silent mode for color placeholders - returns empty string when player has no team instead of showing placeholder text
[10] Added team name support for ally requests - /team ally accept and /team ally deny now use team names instead of internal team IDs
[11] Enhanced /team setcolor command - now supports four modes: named colors (RED, BLUE), legacy codes (&c, §c), hex colors (#FF0000), and gradients (#FF0000 #00FF00)
[12] Improved PlaceholderAPI compatibility - added onPlaceholderRequest(Player) method for plugins that specifically call Player-based placeholder methods
[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 #RRGGBB to create beautiful gradient effects
[5] Added hex color validation - ensures proper #RRGGBB format before applying gradient colors
[6] Added database support for gradient colors - new gradient_start and gradient_end columns in donut_teams table
[7] Enhanced /team setcolor command - 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 home or /team warp twice 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 - /tm command 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(), and startWarpTeleportWarmup() all properly cancel existing tasks
[1] Fixed critical server watchdog timeout - removed CompletableFuture.join() blocking main thread in getPlayerTeam() 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 ally command 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_allies and donut_team_ally_requests with 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
EULA: Free EULA
9,385 Views
884 Downloads
Jul 15, 2025 Published
Jul 6, 2026 Updated
5.00 star(s)
Average rating (12)
9.2 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
AI use in marketing
No
AI Content Disclosure
AI was used for configuration polishing, documentation, update logs, and limited development assistance to simulate real-world server environments and help identify bugs under high load.
Game mode
  1. Survival & SMP
  1. Lifesteal
Type
  1. Gameplay
Game mode
  1. Survival
  1. Lifesteal
Game mode (legacy)
  1. Survival
  1. Lifesteal
Supported software
  1. Paper
  1. Folia
Supported versions
  1. 1.21.11
  1. 1.21
Supported languages
  1. English
Includes DRM
No
Source access (legacy)
Open source
Creator
Owner
Recommended for you
A modern, high-performance, and network-ready punishment system.
5.00 star(s) 1 ratings
34 purchases
A survival/kit duel plugin.
5.00 star(s) 1 ratings
31 purchases
RPG Skill Tree Plugin with Custom Enchant Skills
Not yet rated
1 purchase
4.50 star(s) 3 ratings
6 purchases
Host all type of events your way - modular arenas, GUI setup, cross-server ready.
Not yet rated
1 purchase
9,385 Views
884 Downloads
Jul 15, 2025 Published
Jul 6, 2026 Updated
5.00 star(s)
Average rating (12)
9.2 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
AI use in marketing
No
AI Content Disclosure
AI was used for configuration polishing, documentation, update logs, and limited development assistance to simulate real-world server environments and help identify bugs under high load.
Game mode
  1. Survival & SMP
  1. Lifesteal
Type
  1. Gameplay
Game mode
  1. Survival
  1. Lifesteal
Game mode (legacy)
  1. Survival
  1. Lifesteal
Supported software
  1. Paper
  1. Folia
Supported versions
  1. 1.21.11
  1. 1.21
Supported languages
  1. English
Includes DRM
No
Source access (legacy)
Open source
Creator
Owner
Recommended for you
A modern, high-performance, and network-ready punishment system.
5.00 star(s) 1 ratings
34 purchases
A survival/kit duel plugin.
5.00 star(s) 1 ratings
31 purchases
RPG Skill Tree Plugin with Custom Enchant Skills
Not yet rated
1 purchase
4.50 star(s) 3 ratings
6 purchases
Host all type of events your way - modular arenas, GUI setup, cross-server ready.
Not yet rated
1 purchase
Top