From 07a3e22dc9be5f41481fa15962fb290b2bbe046c Mon Sep 17 00:00:00 2001 From: Bas de Jong Date: Mon, 12 Jan 2026 08:51:42 +0100 Subject: [PATCH] Added shuffle to builder --- .../org/toop/framework/networking/server/Server.java | 4 +++- .../networking/server/tournaments/Tournament.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/framework/src/main/java/org/toop/framework/networking/server/Server.java b/framework/src/main/java/org/toop/framework/networking/server/Server.java index 4dbbfb2..c47afe4 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/Server.java +++ b/framework/src/main/java/org/toop/framework/networking/server/Server.java @@ -14,6 +14,7 @@ import org.toop.framework.networking.server.tournaments.*; import org.toop.framework.networking.server.tournaments.matchmakers.RoundRobinMatchMaker; import org.toop.framework.networking.server.tournaments.scoresystems.BasicScoreSystem; import org.toop.framework.networking.server.tournaments.scoresystems.IntegerScoreSystem; +import org.toop.framework.networking.server.tournaments.shufflers.RandomShuffle; import org.toop.framework.utils.ImmutablePair; import java.util.*; @@ -300,9 +301,10 @@ public class Server implements GameServer { .matchMaker(new RoundRobinMatchMaker()) .scoreSystem(new BasicScoreSystem()) .resultBroadcaster(this::endTournament) - .turnTimeout(Duration.ofSeconds(5)) + .turnTimeout(Duration.ofSeconds(10)) .addPlayers(tournamentUsers.toArray(NettyClient[]::new)) .addAdmins(admins.toArray(NettyClient[]::new)) + .addMatchShuffler(new RandomShuffle()) .build(); new Thread(() -> tournament.run(gameType)).start(); diff --git a/framework/src/main/java/org/toop/framework/networking/server/tournaments/Tournament.java b/framework/src/main/java/org/toop/framework/networking/server/tournaments/Tournament.java index 770556e..5d0d313 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/tournaments/Tournament.java +++ b/framework/src/main/java/org/toop/framework/networking/server/tournaments/Tournament.java @@ -4,6 +4,7 @@ import org.toop.framework.networking.server.MatchExecutor; import org.toop.framework.networking.server.client.NettyClient; import org.toop.framework.networking.server.tournaments.matchmakers.MatchMaker; import org.toop.framework.networking.server.tournaments.scoresystems.IntegerScoreSystem; +import org.toop.framework.networking.server.tournaments.shufflers.Shuffler; import java.time.Duration; import java.util.Arrays; @@ -18,6 +19,7 @@ public class Tournament { private final ResultBroadcaster broadcaster; private final NettyClient[] players; private final Duration turnTime; + private final Shuffler shuffler; private Tournament(Tournament.Builder builder) { matchExecutor = builder.matchExecutor; @@ -27,6 +29,7 @@ public class Tournament { broadcaster = builder.broadcaster; players = builder.players; turnTime = builder.turnTime; + shuffler = builder.shuffler; } public void run(String gameType) throws IllegalArgumentException { @@ -36,6 +39,8 @@ public class Tournament { scoreSystem.addPlayer(e); }); + if (shuffler != null) matchMaker.shuffle(shuffler); + tournamentRunner.run(matchExecutor, matchMaker, scoreSystem, broadcaster, turnTime, gameType); } @@ -50,6 +55,7 @@ public class Tournament { private NettyClient[] observors; private NettyClient[] admins; private Duration turnTime = Duration.ofSeconds(10); + private Shuffler shuffler; public Builder matchExecutor(MatchExecutor matchExecutor) { this.matchExecutor = matchExecutor; @@ -96,6 +102,11 @@ public class Tournament { return this; } + public Builder addMatchShuffler(Shuffler shuffler) { + this.shuffler = shuffler; + return this; + } + public Tournament build() { Objects.requireNonNull(matchExecutor, "matchExecutor"); Objects.requireNonNull(scoreSystem, "scoreSystem");