feat(user-sessions): implement GameLobby and user session management with exception handling

This commit is contained in:
2025-10-30 09:00:15 +01:00
committed by Janis
parent f4f886727f
commit 76bde997ef
9 changed files with 142 additions and 45 deletions

View File

@@ -1,6 +1,5 @@
package model.sessions
import de.knockoutwhist.player.AbstractPlayer
import de.knockoutwhist.utils.events.SimpleEvent
import java.util.UUID
@@ -9,7 +8,6 @@ trait PlayerSession {
def id: UUID
def name: String
def player: AbstractPlayer
def updatePlayer(event: SimpleEvent): Unit
}

View File

@@ -1,8 +1,28 @@
package model.sessions
import de.knockoutwhist.player.AbstractPlayer
import de.knockoutwhist.events.player.{RequestCardEvent, RequestTieChoiceEvent, RequestTrumpSuitEvent}
import de.knockoutwhist.utils.events.SimpleEvent
import model.users.User
import java.util.UUID
class UserSession(id: UUID, player: AbstractPlayer) extends SimpleSession(id, player) {
class UserSession(user: User, val host: Boolean) extends PlayerSession {
var canInteract: Boolean = false
override def updatePlayer(event: SimpleEvent): Unit = {
event match {
case event: RequestTrumpSuitEvent =>
canInteract = true
case event: RequestTieChoiceEvent =>
canInteract = true
case event: RequestCardEvent =>
canInteract = true
case _ =>
}
}
override def id: UUID = user.id
override def name: String = user.name
}