Allow disabling certain classes for a specific map
This commit is contained in:
parent
151d28ccc5
commit
53bed854e7
3 changed files with 8 additions and 6 deletions
|
@ -8,12 +8,12 @@ import kotlin.reflect.KClass
|
||||||
import kotlin.reflect.full.primaryConstructor
|
import kotlin.reflect.full.primaryConstructor
|
||||||
|
|
||||||
abstract class TTTClassCompanion(
|
abstract class TTTClassCompanion(
|
||||||
val displayName: String,
|
val name: String,
|
||||||
val chatColor: ChatColor,
|
val chatColor: ChatColor,
|
||||||
private val instanceType: KClass<out TTTClass>,
|
private val instanceType: KClass<out TTTClass>,
|
||||||
val defaultItems: Set<TTTItem<*>> = emptySet()
|
val defaultItems: Set<TTTItem<*>> = emptySet()
|
||||||
) {
|
) {
|
||||||
val coloredDisplayName = "$chatColor$displayName"
|
val coloredDisplayName = "$chatColor$name"
|
||||||
fun createInstance(tttPlayer: TTTPlayer): TTTClass {
|
fun createInstance(tttPlayer: TTTPlayer): TTTClass {
|
||||||
val instance = instanceType.primaryConstructor!!.call()
|
val instance = instanceType.primaryConstructor!!.call()
|
||||||
instance.tttPlayer = tttPlayer
|
instance.tttPlayer = tttPlayer
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package de.moritzruth.spigot_ttt.game.classes
|
package de.moritzruth.spigot_ttt.game.classes
|
||||||
|
|
||||||
|
import de.moritzruth.spigot_ttt.game.GameManager
|
||||||
import de.moritzruth.spigot_ttt.game.classes.impl.*
|
import de.moritzruth.spigot_ttt.game.classes.impl.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
@ -11,11 +12,12 @@ object TTTClassManager {
|
||||||
val listeners = TTT_CLASSES.mapNotNull { it.listener }
|
val listeners = TTT_CLASSES.mapNotNull { it.listener }
|
||||||
|
|
||||||
fun createClassesIterator(count: Int): Iterator<TTTClassCompanion> {
|
fun createClassesIterator(count: Int): Iterator<TTTClassCompanion> {
|
||||||
val set: MutableSet<TTTClassCompanion> = TTT_CLASSES.toMutableSet()
|
val classes: MutableSet<TTTClassCompanion> = TTT_CLASSES.toMutableSet()
|
||||||
|
classes.removeAll { GameManager.tttWorld!!.config.getStringList("blocked-classes").contains(it.name) }
|
||||||
|
|
||||||
val playersWithoutClass = count - TTT_CLASSES.size
|
val playersWithoutClass = count - TTT_CLASSES.size
|
||||||
if (playersWithoutClass > 0) set.addAll(Collections.nCopies(playersWithoutClass, TTTClass.None))
|
if (playersWithoutClass > 0) classes.addAll(Collections.nCopies(playersWithoutClass, TTTClass.None))
|
||||||
|
|
||||||
return set.shuffled().iterator()
|
return classes.shuffled().iterator()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,7 +88,7 @@ class TTTScoreboard(private val tttPlayer: TTTPlayer) {
|
||||||
|
|
||||||
val classDisplayName =
|
val classDisplayName =
|
||||||
if (tttPlayer.tttClass == TTTClass.None) TTTClass.None.coloredDisplayName
|
if (tttPlayer.tttClass == TTTClass.None) TTTClass.None.coloredDisplayName
|
||||||
else "${tttPlayer.tttClass.chatColor}${ChatColor.BOLD}${tttPlayer.tttClass.displayName}"
|
else "${tttPlayer.tttClass.chatColor}${ChatColor.BOLD}${tttPlayer.tttClass.name}"
|
||||||
|
|
||||||
setValue(ValueTeam.CLASS, "Klasse: $classDisplayName")
|
setValue(ValueTeam.CLASS, "Klasse: $classDisplayName")
|
||||||
|
|
||||||
|
|
Reference in a new issue