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 bluePlayers: List<FightPlayer>
|
||||||
lateinit var redPlayers: List<FightPlayer>
|
lateinit var redPlayers: List<FightPlayer>
|
||||||
|
|
||||||
private fun initPlayers(fightPlayers: List<FightPlayer>) {
|
fun initPlayers(fightPlayers: List<FightPlayer>) {
|
||||||
val blue = mutableListOf<FightPlayer>()
|
val blue = mutableListOf<FightPlayer>()
|
||||||
val red = 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.CompositeID
|
||||||
import org.jetbrains.exposed.v1.core.dao.id.CompositeIdTable
|
import org.jetbrains.exposed.v1.core.dao.id.CompositeIdTable
|
||||||
import org.jetbrains.exposed.v1.core.dao.id.EntityID
|
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.core.inList
|
||||||
import org.jetbrains.exposed.v1.dao.CompositeEntity
|
import org.jetbrains.exposed.v1.dao.CompositeEntity
|
||||||
import org.jetbrains.exposed.v1.dao.CompositeEntityClass
|
import org.jetbrains.exposed.v1.dao.CompositeEntityClass
|
||||||
@@ -67,6 +68,11 @@ class FightPlayer(id: EntityID<CompositeID>) : CompositeEntity(id) {
|
|||||||
fun batchGet(fightIds: List<Int>) = useDb {
|
fun batchGet(fightIds: List<Int>) = useDb {
|
||||||
find { FightPlayerTable.fightId inList fightIds.toList() }.toList()
|
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 })
|
val fightID by FightPlayerTable.fightId.transform({ EntityID(it, FightTable) }, { it.value })
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ data class FightData(
|
|||||||
val bluePlayers: List<ResponseUser>,
|
val bluePlayers: List<ResponseUser>,
|
||||||
val redPlayers: 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.id.value,
|
||||||
fight.gameMode,
|
fight.gameMode,
|
||||||
fight.server,
|
fight.server,
|
||||||
@@ -90,8 +90,8 @@ data class FightData(
|
|||||||
fight.redSchem?.let { SchematicNode.getSchematicNode(it.value)?.name },
|
fight.redSchem?.let { SchematicNode.getSchematicNode(it.value)?.name },
|
||||||
fight.winner.name,
|
fight.winner.name,
|
||||||
fight.winCondition,
|
fight.winCondition,
|
||||||
fight.bluePlayers.map { ResponseUser.get(it.userID) },
|
players.filter { it.team == 1 }.map { ResponseUser.get(it.userID) },
|
||||||
fight.redPlayers.map { ResponseUser.get(it.userID) },
|
players.filter { it.team == 2 }.map { ResponseUser.get(it.userID) },
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user