feat(base): Fixed logic for websockets and added GameStateEvent. Might've caused instability on other feature branches! (#84)

Reviewed-on: #84
Reviewed-by: lq64 <lq@blackhole.local>
Co-authored-by: Janis <janis.e.20@gmx.de>
Co-committed-by: Janis <janis.e.20@gmx.de>
This commit is contained in:
2025-11-26 11:26:08 +01:00
committed by lq64
parent 52e5033afc
commit b81bb3d0ae
14 changed files with 200 additions and 134 deletions

View File

@@ -0,0 +1,18 @@
package util.mapper
import controllers.IngameController
import de.knockoutwhist.events.global.GameStateChangeEvent
import model.sessions.UserSession
import play.api.libs.json.{JsObject, Json}
object GameStateEventMapper extends SimpleEventMapper[GameStateChangeEvent] {
override def id: String = "GameStateChangeEvent"
override def toJson(event: GameStateChangeEvent, session: UserSession): JsObject = {
Json.obj(
//Title
"content" -> IngameController.returnInnerHTML(session.gameLobby, event.newState, session.user).toString
)
}
}

View File

@@ -1,14 +1,14 @@
package util.mapper
import de.knockoutwhist.events.player.ReceivedHandEvent
import logic.game.GameLobby
import play.api.libs.json.{JsArray, JsObject, Json}
import model.sessions.UserSession
import play.api.libs.json.{JsObject, Json}
import util.WebUIUtils
object ReceivedHandEventMapper extends SimpleEventMapper[ReceivedHandEvent] {
override def id: String = "ReceivedHandEvent"
override def toJson(event: ReceivedHandEvent, gameLobby: GameLobby): JsObject = {
override def toJson(event: ReceivedHandEvent, session: UserSession): JsObject = {
Json.obj(
"dog" -> event.player.isInDogLife,
"hand" -> event.player.currentHand().map(hand => WebUIUtils.handToJson(hand))

View File

@@ -2,11 +2,12 @@ package util.mapper
import de.knockoutwhist.utils.events.SimpleEvent
import logic.game.GameLobby
import model.sessions.UserSession
import play.api.libs.json.JsObject
trait SimpleEventMapper[T <: SimpleEvent] {
def id: String
def toJson(event: T, gameLobby: GameLobby): JsObject
def toJson(event: T, session: UserSession): JsObject
}