Compare commits

..

6 Commits

5 changed files with 29 additions and 2 deletions

View File

@@ -312,3 +312,18 @@
### Features ### Features
* Update joinGame endpoint to accept gameId as a path parameter ([cf18549](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/cf1854976a51eb4931d50cf93640498ed18686fc)) * Update joinGame endpoint to accept gameId as a path parameter ([cf18549](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/cf1854976a51eb4931d50cf93640498ed18686fc))
## (2026-01-07)
### Features
* Enhance user state management with polling and WebSocket connection handling ([b4bf2ce](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/b4bf2ceb4dc76ac388124b9705a1aa9e577582af))
### Bug Fixes
* Update knockoutwhistfrontend hash for consistency ([0e555cd](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/0e555cdfeb114464c9438bfd5dc397201a073867))
## (2026-01-07)
### Features
* Implement PlayDogCard functionality in user session and update Vue component ([859dfce](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/859dfce521b193b9208d0c70fca88016f8fe08f4))
* Implement PlayDogCard functionality in user session and update Vue component ([61ae9b5](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/61ae9b5a5e7cd9fd82b77e9159814b0066874c2d))

View File

@@ -34,6 +34,7 @@ class StatusController @Inject()(
Json.obj( Json.obj(
"status" -> "authenticated", "status" -> "authenticated",
"username" -> user.name, "username" -> user.name,
"userId" -> user.id,
"inGame" -> false "inGame" -> false
) )
) )
@@ -43,6 +44,7 @@ class StatusController @Inject()(
Json.obj( Json.obj(
"status" -> "authenticated", "status" -> "authenticated",
"username" -> user.name, "username" -> user.name,
"userId" -> user.id,
"inGame" -> true, "inGame" -> true,
"gameId" -> game.id "gameId" -> game.id
) )

View File

@@ -54,6 +54,16 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e
case None => case None =>
println("Card Index not found or is not a number." + data) println("Card Index not found or is not a number." + data)
} }
case "PlayDogCard" =>
val maybeCardIndex: Option[Int] = (data \ "cardindex").asOpt[Int]
maybeCardIndex match {
case Some(index) =>
val session = gameLobby.getUserSession(user.id)
gameLobby.playDogCard(session, index)
case None =>
val session = gameLobby.getUserSession(user.id)
gameLobby.playDogCard(session, -1)
}
case "PickTrumpsuit" => case "PickTrumpsuit" =>
val maybeSuitIndex: Option[Int] = (data \ "suitIndex").asOpt[Int] val maybeSuitIndex: Option[Int] = (data \ "suitIndex").asOpt[Int]
maybeSuitIndex match { maybeSuitIndex match {

View File

@@ -1,3 +1,3 @@
MAJOR=4 MAJOR=4
MINOR=25 MINOR=27
PATCH=0 PATCH=0