diff --git a/app/src/main/java/org/toop/app/Server.java b/app/src/main/java/org/toop/app/Server.java index 8a198ae..8d71c4a 100644 --- a/app/src/main/java/org/toop/app/Server.java +++ b/app/src/main/java/org/toop/app/Server.java @@ -29,6 +29,7 @@ public final class Server { private long clientId = -1; private List onlinePlayers = new CopyOnWriteArrayList(); + private List gameList = new CopyOnWriteArrayList<>(); private ServerView view; @@ -80,6 +81,9 @@ public final class Server { ViewStack.push(view); startPopulateScheduler(); + + populateGameList(); + }).postEvent(); new EventFlow().listen(this::handleReceivedChallenge); @@ -207,16 +211,18 @@ public final class Server { scheduler.schedule(() -> populatePlayerList(scheduler, getPlayerlistFlow::postEvent), 0, TimeUnit.MILLISECONDS); } - public List getGamesList() { - final List list = new ArrayList(); - list.add("tic-tac-toe"); // Todo: get games list from server and check if the game is supported - list.add("reversi"); + private void gamesListFromServerHandler(NetworkEvents.GamelistResponse event) { + gameList.addAll(List.of(event.gamelist())); + } + public void populateGameList() { new EventFlow().addPostEvent(new NetworkEvents.SendGetGamelist(clientId)) - .listen(NetworkEvents.GamelistResponse.class, e -> { - System.out.println(Arrays.toString(e.gamelist())); - }).postEvent(); - - return list; + .listen(NetworkEvents.GamelistResponse.class, + this::gamesListFromServerHandler, true + ).postEvent(); } + + public List getGameList() { + return gameList; + } } \ No newline at end of file diff --git a/app/src/main/java/org/toop/app/view/views/SendChallengeView.java b/app/src/main/java/org/toop/app/view/views/SendChallengeView.java index a3bde9b..5d88a13 100644 --- a/app/src/main/java/org/toop/app/view/views/SendChallengeView.java +++ b/app/src/main/java/org/toop/app/view/views/SendChallengeView.java @@ -46,7 +46,7 @@ public final class SendChallengeView extends View { gameText.setText(AppContext.getString("to-a-game-of")); final ComboBox gamesCombobox = combobox(); - gamesCombobox.getItems().addAll(server.getGamesList()); + gamesCombobox.getItems().addAll(server.getGameList()); gamesCombobox.setValue(gamesCombobox.getItems().getFirst()); final Button sendButton = button();