package net.taehui.twilight.system import net.taehui.twilight.Logger import net.taehui.twilight.Utility object QwilightNamesSystem : Logger { private val qwilightNameCountMap = mutableMapOf<String, Int>() private val qwilightNames = mutableListOf<String>() fun loadQwilightNames() { qwilightNames.addAll(DB.getQwilightNames()) qwilightNames.forEach { qwilightNameCountMap[it] = 0 } logInfo("Loaded Qwilight Names") } val qwilightName: String get() { synchronized(qwilightNameCountMap) { val minValue = qwilightNameCountMap.values.minOrNull() ?: 0 val qwilightName = Utility.getSaltedItem( qwilightNameCountMap.entries .filter { it.value == minValue } .map { it.key }, "" ) if (qwilightName.isNotEmpty()) { qwilightNameCountMap[qwilightName] = (qwilightNameCountMap[qwilightName] ?: 0) + 1 } return qwilightName } } }