DArena/src/main/kotlin/nl/kallestruik/darena/managers/GameManager.kt

41 lines
1.2 KiB
Kotlin

package nl.kallestruik.darena.managers
import nl.kallestruik.darena.types.Game
import nl.kallestruik.darena.types.Reloadable
import nl.kallestruik.darena.util.ConfigHelper
import nl.kallestruik.darena.util.Logger
import java.io.File
class GameManager(
val arenaManager: ArenaManager,
val gameFile: File,
): Reloadable {
val games = mutableMapOf<String,Game>()
fun load() {
val config = ConfigHelper.getOrCreateConfig(gameFile, "template/games.yml")
for (gameName in config.getKeys(false)) {
val game = Game(gameName)
for (arenaName in config.getStringList("$gameName.arenas")) {
val arena = arenaManager.getArena(arenaName)
if (arena == null) {
Logger.warn(GameManager::class, "Arena with name $arenaName is used in games.yml but not defined!")
continue
}
game.arenas.add(arena)
}
if (config.contains("$gameName.description"))
game.description = config.getString("$gameName.description")!!
games[gameName] = game
}
}
override fun reload() {
games.clear()
load()
}
}