diff --git a/CommonCore/SQL/src/de/steamwar/sql/Fight.kt b/CommonCore/SQL/src/de/steamwar/sql/Fight.kt index d64d7583..58779556 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/Fight.kt +++ b/CommonCore/SQL/src/de/steamwar/sql/Fight.kt @@ -141,7 +141,7 @@ class Fight(id: EntityID) : IntEntity(id) { lateinit var bluePlayers: List lateinit var redPlayers: List - private fun initPlayers(fightPlayers: List) { + fun initPlayers(fightPlayers: List) { val blue = mutableListOf() val red = mutableListOf() diff --git a/CommonCore/SQL/src/de/steamwar/sql/FightPlayer.kt b/CommonCore/SQL/src/de/steamwar/sql/FightPlayer.kt index d0238c96..c7a3ea15 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/FightPlayer.kt +++ b/CommonCore/SQL/src/de/steamwar/sql/FightPlayer.kt @@ -23,6 +23,7 @@ import de.steamwar.sql.internal.useDb import org.jetbrains.exposed.v1.core.dao.id.CompositeID import org.jetbrains.exposed.v1.core.dao.id.CompositeIdTable import org.jetbrains.exposed.v1.core.dao.id.EntityID +import org.jetbrains.exposed.v1.core.eq import org.jetbrains.exposed.v1.core.inList import org.jetbrains.exposed.v1.dao.CompositeEntity import org.jetbrains.exposed.v1.dao.CompositeEntityClass @@ -67,6 +68,11 @@ class FightPlayer(id: EntityID) : CompositeEntity(id) { fun batchGet(fightIds: List) = useDb { find { FightPlayerTable.fightId inList fightIds.toList() }.toList() } + + @JvmStatic + fun getFight(fightId: Int) = useDb { + find { FightPlayerTable.fightId eq fightId }.toList() + } } val fightID by FightPlayerTable.fightId.transform({ EntityID(it, FightTable) }, { it.value }) diff --git a/WebsiteBackend/src/de/steamwar/routes/EventFights.kt b/WebsiteBackend/src/de/steamwar/routes/EventFights.kt index 9edffe3a..504cb3c1 100644 --- a/WebsiteBackend/src/de/steamwar/routes/EventFights.kt +++ b/WebsiteBackend/src/de/steamwar/routes/EventFights.kt @@ -78,7 +78,7 @@ data class FightData( val bluePlayers: List, val redPlayers: List, ) { - constructor(fight: Fight) : this( + constructor(fight: Fight, players: List = FightPlayer.getFight(fight.fightID)) : this( fight.id.value, fight.gameMode, fight.server, @@ -90,8 +90,8 @@ data class FightData( fight.redSchem?.let { SchematicNode.getSchematicNode(it.value)?.name }, fight.winner.name, fight.winCondition, - fight.bluePlayers.map { ResponseUser.get(it.userID) }, - fight.redPlayers.map { ResponseUser.get(it.userID) }, + players.filter { it.team == 1 }.map { ResponseUser.get(it.userID) }, + players.filter { it.team == 2 }.map { ResponseUser.get(it.userID) }, ) }