1
0
Fork 0

Allow disabling certain classes for a specific map

This commit is contained in:
Moritz Ruth 2020-06-20 22:25:04 +02:00
parent 151d28ccc5
commit 53bed854e7
No known key found for this signature in database
GPG key ID: AFD57E23E753841B
3 changed files with 8 additions and 6 deletions

View file

@ -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

View file

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

View file

@ -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")