Shuffle player list before assigning teams

Added logic to randomize the order of players before assigning them to teams. This ensures a fairer distribution when teams are being populated.
This commit is contained in:
Teriuihi 2025-02-15 02:47:04 +01:00
parent 7ae91bcf06
commit 07b700bc32

View File

@ -21,6 +21,9 @@ import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@Slf4j
@ -52,7 +55,9 @@ public class ClassSelectionPhase implements GamePhaseExecutor {
Bukkit.broadcast(MiniMessage.miniMessage().deserialize("<green>Select your class with <gold>/ctf selectclass</gold></green>"));
CircularIterator<Team> teamCircularIterator = new CircularIterator<>(gameManager.getTeams());
if (teamCircularIterator.hasNext()) {
Bukkit.getOnlinePlayers().stream()
ArrayList<? extends Player> players = new ArrayList<>(Bukkit.getOnlinePlayers());
Collections.shuffle(players);
players.stream()
.filter(player -> !player.hasPermission("ctf.bypass"))
.filter(player -> gameManager.getTeamPlayer(player.getUniqueId()).isEmpty())
.forEach(player -> {