From 04f374cfff3f39acd518fa1be536d4026052633e Mon Sep 17 00:00:00 2001 From: eric <3024947@stud.hs-mannheim.de> Date: Mon, 11 Aug 2025 22:35:29 +0200 Subject: [PATCH] songowner system war falsch implementiert --- src/main/java/eric/Roullette/service/GameService.java | 6 +++++- .../java/eric/Roullette/service/SpotifyAuthService.java | 2 +- .../eric/Roullette/websocket/GameWebSocketHandler.java | 7 +++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/eric/Roullette/service/GameService.java b/src/main/java/eric/Roullette/service/GameService.java index 2161e7d..090541f 100644 --- a/src/main/java/eric/Roullette/service/GameService.java +++ b/src/main/java/eric/Roullette/service/GameService.java @@ -92,7 +92,11 @@ package eric.Roullette.service; Game g = getOrCreateGame(gameId); if (g.players().isEmpty()) throw new IllegalStateException("No players"); String owner = g.players().get(ThreadLocalRandom.current().nextInt(g.players().size())); - String song = uris.get(ThreadLocalRandom.current().nextInt(uris.size())); + List ownerTracks = g.playerTracks().getOrDefault(owner, List.of()); + if (ownerTracks.isEmpty()) throw new IllegalStateException("Owner hat keine Tracks"); + String song = ownerTracks.get(ThreadLocalRandom.current().nextInt(ownerTracks.size())); + + //String song = uris.get(ThreadLocalRandom.current().nextInt(uris.size())); Game updated = new Game(gameId, g.players(), g.scores(), owner, song, uris, g.playerTracks()); games.put(gameId, updated); return updated; diff --git a/src/main/java/eric/Roullette/service/SpotifyAuthService.java b/src/main/java/eric/Roullette/service/SpotifyAuthService.java index 9b28fcc..10797cf 100644 --- a/src/main/java/eric/Roullette/service/SpotifyAuthService.java +++ b/src/main/java/eric/Roullette/service/SpotifyAuthService.java @@ -81,7 +81,7 @@ public class SpotifyAuthService { public List getRecentTracks(String user) { System.out.println("Hole kürzlich gespielte Tracks für Benutzer: " + user); - int limit = 50; + int limit = 5; SpotifyApi userApi = userApis.get(user); if (userApi == null) { diff --git a/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java b/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java index 85dcc02..3bc9575 100644 --- a/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java +++ b/src/main/java/eric/Roullette/websocket/GameWebSocketHandler.java @@ -171,12 +171,19 @@ private void broadcastRoundResult(String gameId) { Map guesses = currentGuesses.remove(gameId); String owner = game.currentOwner(); +// System.out.println("Owner: " + owner); +// System.out.println("Guesses: " + guesses); +// System.out.println("Scores vor Auswertung: " + scores); + // Für jeden Tippenden Score anpassen for (Map.Entry entry : guesses.entrySet()) { String guesser = entry.getKey(); boolean correct = owner.equals(entry.getValue()); scores.merge(guesser, correct ? 3 : -1, Integer::sum); } +// System.out.println("Owner: " + owner); +// System.out.println("Guesses: " + guesses); +// System.out.println("Scores nach Auswertung: " + scores); String msg = JsonUtil.toJson(Map.of( "type", "round-result",