From 6b644ed8fa2c4132ab86182cd592773d71190914 Mon Sep 17 00:00:00 2001 From: Bas de Jong Date: Sat, 10 Jan 2026 00:06:52 +0100 Subject: [PATCH] Shuffle now changeable, host can now switch tournament gametype --- app/src/main/java/org/toop/app/Server.java | 8 +-- .../org/toop/app/widget/view/ServerView.java | 51 +++++++++++-------- .../framework/networking/server/Server.java | 3 +- .../server/tournaments/BasicTournament.java | 18 +------ .../server/tournaments/RandomShuffle.java | 20 ++++++++ .../server/tournaments/Shuffler.java | 7 +++ .../server/tournaments/Tournament.java | 2 +- 7 files changed, 66 insertions(+), 43 deletions(-) create mode 100644 framework/src/main/java/org/toop/framework/networking/server/tournaments/RandomShuffle.java create mode 100644 framework/src/main/java/org/toop/framework/networking/server/tournaments/Shuffler.java diff --git a/app/src/main/java/org/toop/app/Server.java b/app/src/main/java/org/toop/app/Server.java index 5b97c4b..b7e7c70 100644 --- a/app/src/main/java/org/toop/app/Server.java +++ b/app/src/main/java/org/toop/app/Server.java @@ -117,9 +117,8 @@ public final class Server { return; } - primary = new ServerView(user, this::sendChallenge, () -> { - GlobalEventBus.get().post(new NetworkEvents.SendCommand(clientId, "tournament", "start", "tic-tac-toe")); - }, clientId); + primary = new ServerView(user, this::sendChallenge, user, clientId); + WidgetContainer.getCurrentView().transitionNextCustom(primary, "disconnect", this::disconnect); a.unsubscribe("connecting"); @@ -339,7 +338,8 @@ public final class Server { private void gamesListFromServerHandler(NetworkEvents.GamelistResponse event) { gameList.clear(); - var gl = List.of(event.gamelist()); + var gl = new java.util.ArrayList<>(List.of(event.gamelist())); + gl.sort(String::compareTo); gameList.addAll(gl); primary.updateGameList(gl); } diff --git a/app/src/main/java/org/toop/app/widget/view/ServerView.java b/app/src/main/java/org/toop/app/widget/view/ServerView.java index 531b50e..2c4989f 100644 --- a/app/src/main/java/org/toop/app/widget/view/ServerView.java +++ b/app/src/main/java/org/toop/app/widget/view/ServerView.java @@ -7,6 +7,7 @@ import org.toop.app.widget.Primitive; import org.toop.app.widget.complex.ViewWidget; import java.io.Reader; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.function.Consumer; @@ -16,41 +17,42 @@ import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.ListView; import org.toop.framework.eventbus.EventFlow; +import org.toop.framework.eventbus.GlobalEventBus; import org.toop.framework.networking.connection.events.NetworkEvents; public final class ServerView extends ViewWidget { private final String user; private final Consumer onPlayerClicked; - private final Runnable tournamentRequest; private final long clientId; - private final ComboBox gameList; + private final ComboBox gameListSub; + private final ComboBox gameListTour; private final ListView