DArena/src/main/kotlin/nl/kallestruik/darena/arenas/ArenaConfig.kt

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
}
}
}