45 lines
1.6 KiB
Kotlin
45 lines
1.6 KiB
Kotlin
package nl.kallestruik.darena.arenas
|
|
|
|
import nl.kallestruik.darena.types.arena.ArenaLoadout
|
|
import nl.kallestruik.darena.types.arena.ArenaSpawn
|
|
import nl.kallestruik.darena.types.arena.ArenaCheckpoint
|
|
import nl.kallestruik.darena.types.arena.ArenaPoints
|
|
import nl.kallestruik.darena.util.ConfigHelper
|
|
import java.io.File
|
|
|
|
data class ArenaConfig(
|
|
var name: String = "[Missing name]",
|
|
var spawns: List<ArenaSpawn> = emptyList(),
|
|
var loadouts: List<ArenaLoadout> = emptyList(),
|
|
var checkpoints: List<ArenaCheckpoint> = emptyList(),
|
|
var points: ArenaPoints = ArenaPoints(),
|
|
) {
|
|
companion object {
|
|
fun load(file: File): ArenaConfig {
|
|
val config = ConfigHelper.getOrCreateConfig(file, "template/arena.yml")
|
|
val arenaConfig = ArenaConfig()
|
|
|
|
if (config.contains("name")) {
|
|
arenaConfig.name = config.getString("name")!!
|
|
}
|
|
|
|
if (config.contains("spawns")) {
|
|
arenaConfig.spawns = ArenaSpawn.loadList(config.getConfigurationSection("spawns")!!)
|
|
}
|
|
|
|
if (config.contains("loadouts")) {
|
|
arenaConfig.loadouts = ArenaLoadout.loadList(config.getConfigurationSection("loadouts")!!)
|
|
}
|
|
|
|
if (config.contains("checkpoints")) {
|
|
arenaConfig.checkpoints = ArenaCheckpoint.loadList(config.getConfigurationSection("checkpoints")!!)
|
|
}
|
|
|
|
if (config.contains("points")) {
|
|
arenaConfig.points = ArenaPoints.load(config.getConfigurationSection("points")!!)
|
|
}
|
|
|
|
return arenaConfig
|
|
}
|
|
}
|
|
}
|