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