41 lines
1.2 KiB
Kotlin
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()
|
|
}
|
|
} |