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:
parent
7ae91bcf06
commit
07b700bc32
|
|
@ -21,6 +21,9 @@ import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Slf4j
|
@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>"));
|
Bukkit.broadcast(MiniMessage.miniMessage().deserialize("<green>Select your class with <gold>/ctf selectclass</gold></green>"));
|
||||||
CircularIterator<Team> teamCircularIterator = new CircularIterator<>(gameManager.getTeams());
|
CircularIterator<Team> teamCircularIterator = new CircularIterator<>(gameManager.getTeams());
|
||||||
if (teamCircularIterator.hasNext()) {
|
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 -> !player.hasPermission("ctf.bypass"))
|
||||||
.filter(player -> gameManager.getTeamPlayer(player.getUniqueId()).isEmpty())
|
.filter(player -> gameManager.getTeamPlayer(player.getUniqueId()).isEmpty())
|
||||||
.forEach(player -> {
|
.forEach(player -> {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user