fix(api): fixes

This commit is contained in:
2025-11-27 09:47:34 +01:00
parent 4360bb55f7
commit 579209aa69
4 changed files with 53 additions and 30 deletions

View File

@@ -47,11 +47,11 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e
case "StartGame" =>
gameLobby.startGame(user)
case "PlayCard" =>
val maybeCardIndex: Option[Int] = (data \ "cardindex").asOpt[Int]
val maybeCardIndex: Option[String] = (data \ "cardindex").asOpt[String]
maybeCardIndex match {
case Some(index) =>
val session = gameLobby.getUserSession(user.id)
gameLobby.playCard(session, index)
gameLobby.playCard(session, index.toInt)
case None =>
println("Card Index not found or is not a number.")
}
@@ -69,7 +69,6 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e
lock.unlock()
if (result.isFailure) {
val throwable = result.failed.get
throwable.printStackTrace()
throw throwable
}
}

View File

@@ -112,7 +112,7 @@
} else {
@for(i <- player.currentHand().get.cards.indices) {
<div class="col-auto handcard" style="border-radius: 6px">
<div class="btn btn-outline-light p-0 border-0 shadow-none" id="@i" data-card-id="@i" style="border-radius: 6px" onclick="handlePlayCard(@i, '@player.isInDogLife')">
<div class="btn btn-outline-light p-0 border-0 shadow-none" data-card-id="@i" style="border-radius: 6px" onclick="handlePlayCard(this, '@player.isInDogLife')">
@util.WebUIUtils.cardtoImage(player.currentHand().get.cards(i)) width="120px" style="border-radius: 6px"/>
</div>
@if(player.isInDogLife) {
@@ -130,16 +130,17 @@
</main>
</div>
<script>
function waitForFunction(name, checkInterval = 100) {
return new Promise(resolve => {
const timer = setInterval(() => {
if (typeof window[name] === "function") {
clearInterval(timer);
resolve(window[name]);
}
}, checkInterval);
});
}
waitForFunction("pollForUpdates").then(fn => fn('@gamelobby.id'));
function waitForFunction(name, checkInterval = 100) {
return new Promise(resolve => {
const timer = setInterval(() => {
if (typeof window[name] === "function") {
clearInterval(timer);
resolve(window[name]);
}
}, checkInterval);
});
}
waitForFunction("pollForUpdates").then(fn => fn('@gamelobby.id'));
connectWebSocket()
canPlayCard = @gamelobby.logic.getCurrentPlayer.contains(player);
</script>