forked from SteamWar/SteamWar
Refactor EventFights and Fight classes to improve player initialization and retrieval
Signed-off-by: Chaoscaot <max@maxsp.de>
This commit is contained in:
@@ -141,7 +141,7 @@ class Fight(id: EntityID<Int>) : IntEntity(id) {
|
||||
lateinit var bluePlayers: List<FightPlayer>
|
||||
lateinit var redPlayers: List<FightPlayer>
|
||||
|
||||
private fun initPlayers(fightPlayers: List<FightPlayer>) {
|
||||
fun initPlayers(fightPlayers: List<FightPlayer>) {
|
||||
val blue = mutableListOf<FightPlayer>()
|
||||
val red = mutableListOf<FightPlayer>()
|
||||
|
||||
|
||||
@@ -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<CompositeID>) : CompositeEntity(id) {
|
||||
fun batchGet(fightIds: List<Int>) = 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 })
|
||||
|
||||
@@ -78,7 +78,7 @@ data class FightData(
|
||||
val bluePlayers: List<ResponseUser>,
|
||||
val redPlayers: List<ResponseUser>,
|
||||
) {
|
||||
constructor(fight: Fight) : this(
|
||||
constructor(fight: Fight, players: List<FightPlayer> = 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) },
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user