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:
18
knockoutwhistweb/app/util/mapper/GameStateEventMapper.scala
Normal file
18
knockoutwhistweb/app/util/mapper/GameStateEventMapper.scala
Normal 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
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user