Compare commits

..

4 Commits
4.5.0 ... 4.6.1

Author SHA1 Message Date
TeamCity
7f82d2eeae ci: bump version to v4.6.1 2025-12-01 19:44:13 +00:00
a55f0b4b61 fix(api): BAC-23 Remove old polling code (#95)
Reviewed-on: #95
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2025-12-01 20:41:27 +01:00
TeamCity
f115c03ecb ci: bump version to v4.6.0 2025-12-01 19:07:26 +00:00
fd2467a9ea feat(api): BAC-11 Websocket - Return to Lobby (#94)
Reviewed-on: #94
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
2025-12-01 20:04:17 +01:00
9 changed files with 18 additions and 60 deletions

View File

@@ -177,3 +177,13 @@
### Features ### Features
* **api:** BAC-10 Websockets - Kick Users ([#93](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/issues/93)) ([0541bb5](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/0541bb58d19efd98d134b3d0412f39b4b1001783)) * **api:** BAC-10 Websockets - Kick Users ([#93](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/issues/93)) ([0541bb5](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/0541bb58d19efd98d134b3d0412f39b4b1001783))
## (2025-12-01)
### Features
* **api:** BAC-11 Websocket - Return to Lobby ([#94](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/issues/94)) ([fd2467a](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/fd2467a9ea22dca64d5152a5a3e6db86d9a6f345))
## (2025-12-01)
### Bug Fixes
* **api:** BAC-23 Remove old polling code ([#95](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/issues/95)) ([a55f0b4](https://git.janis-eccarius.de/KnockOutWhist/KnockOutWhist-Web/commit/a55f0b4b6164a47e3524422650ed99d10f9c8b0d))

View File

@@ -73,6 +73,8 @@ class UserSession(val user: User, val host: Boolean, val gameLobby: GameLobby) e
case None => case None =>
println("Player ID not found or is not a valid UUID.") println("Player ID not found or is not a valid UUID.")
} }
case "ReturnToLobby" =>
gameLobby.returnToLobby(this)
} }
} }
lock.unlock() lock.unlock()

View File

@@ -10,7 +10,7 @@
<div class="row justify-content-center align-items-center flex-grow-1"> <div class="row justify-content-center align-items-center flex-grow-1">
@if((gamelobby.getUserSession(user.get.id).host)) { @if((gamelobby.getUserSession(user.get.id).host)) {
<div class="col-12 text-center mb-5"> <div class="col-12 text-center mb-5">
<div class="btn btn-success" onclick="backToLobby('@gamelobby.id')">Return to lobby</div> <div class="btn btn-success" onclick="handleReturnToLobby()">Return to lobby</div>
</div> </div>
} else { } else {
<div class="col-12 text-center mt-3"> <div class="col-12 text-center mt-3">
@@ -23,16 +23,5 @@
</div> </div>
</main> </main>
<script> <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'));
connectWebSocket() connectWebSocket()
</script> </script>

View File

@@ -130,17 +130,6 @@
</main> </main>
</div> </div>
<script> <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'));
connectWebSocket() connectWebSocket()
canPlayCard = @gamelobby.logic.getCurrentPlayer.contains(player); canPlayCard = @gamelobby.logic.getCurrentPlayer.contains(player);
</script> </script>

View File

@@ -64,16 +64,5 @@
</div> </div>
</div> </div>
<script> <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'));
connectWebSocket() connectWebSocket()
</script> </script>

View File

@@ -110,16 +110,5 @@
</div> </div>
</div> </div>
<script> <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'));
connectWebSocket() connectWebSocket()
</script> </script>

View File

@@ -98,18 +98,5 @@
</div> </div>
</main> </main>
<script> <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'));
*/
connectWebSocket() connectWebSocket()
</script> </script>

View File

@@ -77,3 +77,6 @@ function handleKickPlayer(playerId) {
playerId: playerId playerId: playerId
}) })
} }
function handleReturnToLobby() {
sendEvent("ReturnToLobby")
}

View File

@@ -1,3 +1,3 @@
MAJOR=4 MAJOR=4
MINOR=5 MINOR=6
PATCH=0 PATCH=1