From 2d9b34b7f6d79e9a4810016b059b036cd3e9dd71 Mon Sep 17 00:00:00 2001 From: Stef Date: Sun, 14 Dec 2025 11:36:51 +0100 Subject: [PATCH] Quick fix so more than one game can be played in succession --- .../networking/server/OnlineTurnBasedGame.java | 10 +++++++--- .../org/toop/framework/networking/server/Server.java | 3 ++- .../framework/networking/server/client/Client.java | 2 +- .../networking/server/client/NettyClient.java | 6 ++---- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/framework/src/main/java/org/toop/framework/networking/server/OnlineTurnBasedGame.java b/framework/src/main/java/org/toop/framework/networking/server/OnlineTurnBasedGame.java index 3248922..5e8e28c 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/OnlineTurnBasedGame.java +++ b/framework/src/main/java/org/toop/framework/networking/server/OnlineTurnBasedGame.java @@ -31,14 +31,18 @@ public class OnlineTurnBasedGame implements OnlineGame { private void notifyGameEnd(GameState state, int winner){ if (state == GameState.DRAW){ for (NettyClient client : clients) { - client.send(String.format("SVR GAME DRAW {PLAYERONESCORE: \"\", PLAYERTWOSCORE: \"\", COMMENT: \"NettyClient disconnected\"}\n")); + client.send(String.format("SVR GAME DRAW {PLAYERONESCORE: \"\", PLAYERTWOSCORE: \"\", COMMENT: \"\"}\n")); } } else{ - clients[winner].send(String.format("SVR GAME WIN {PLAYERONESCORE: \"\", PLAYERTWOSCORE: \"\", COMMENT: \"NettyClient disconnected\"}\n")); - clients[(winner + 1)%2].send(String.format("SVR GAME LOSS {PLAYERONESCORE: \"\", PLAYERTWOSCORE: \"\", COMMENT: \"NettyClient disconnected\"}\n")); + clients[winner].send(String.format("SVR GAME WIN {PLAYERONESCORE: \"\", PLAYERTWOSCORE: \"\", COMMENT: \"\"}\n")); + clients[(winner + 1)%2].send(String.format("SVR GAME LOSS {PLAYERONESCORE: \"\", PLAYERTWOSCORE: \"\", COMMENT: \"\"}\n")); } + // Remove game fromt clients + for(NettyClient client : clients) { + client.clearGame(); + } } @Override 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 42a03e0..3df6afe 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 @@ -142,7 +142,7 @@ public class Server implements GameServer { for (int i = 0; i < clients.length; i++) { players[i] = new ServerPlayer(clients[i]); - clients[i].addGame(new ImmutablePair<>(game, players[i])); + clients[i].setGame(new ImmutablePair<>(game, players[i])); } System.out.println("Starting OnlineTurnBasedGame"); @@ -207,6 +207,7 @@ public class Server implements GameServer { if (userNames.size() < 2) continue; while (userNames.size() > 1) { + // TODO: Make sure users aren't currently in a game. int left = ran.nextInt(userNames.size()); int right; do { diff --git a/framework/src/main/java/org/toop/framework/networking/server/client/Client.java b/framework/src/main/java/org/toop/framework/networking/server/client/Client.java index cf97318..a07f3ad 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/client/Client.java +++ b/framework/src/main/java/org/toop/framework/networking/server/client/Client.java @@ -12,7 +12,7 @@ public interface Client { OnlineTurnBasedGame game(); P player(); - void addGame(Pair gamePair); + void setGame(Pair gamePair); void clearGame(); void send(String message); diff --git a/framework/src/main/java/org/toop/framework/networking/server/client/NettyClient.java b/framework/src/main/java/org/toop/framework/networking/server/client/NettyClient.java index 22b5254..c038313 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/client/NettyClient.java +++ b/framework/src/main/java/org/toop/framework/networking/server/client/NettyClient.java @@ -27,10 +27,8 @@ public class NettyClient implements Client { } @Override - public void addGame(Pair gamePair) { - if (this.gamePair == null) { - this.gamePair = gamePair; - } + public void setGame(Pair gamePair) { + this.gamePair = gamePair; } @Override