package club.mcscrims.speedhg.util import club.mcscrims.speedhg.SpeedHG import net.kyori.adventure.text.Component import net.kyori.adventure.text.minimessage.MiniMessage import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer import org.bukkit.entity.Player private val langManager get() = SpeedHG.instance.languageManager private val legacySerializer = LegacyComponentSerializer.builder() .character('ยง') .hexColors() .useUnusualXRepeatedCharacterHexFormat() .build() fun Player.sendMsg( key: String, vararg placeholders: Pair ) { val component = langManager.getComponent( this, key, placeholders.toMap() ) this.sendMessage( component ) } fun Player.trans( key: String, vararg placeholders: Pair ): Component { return langManager.getComponent( this, key, placeholders.toMap() ) } fun Player.transList( key: String, placeholders: Map ): List { val rawList = langManager.getRawMessageList( this, key ) return rawList.map { line -> var replaced = line placeholders.forEach { (k, v) -> replaced = replaced.replace( "<$k>", v ) } MiniMessage.miniMessage().deserialize( replaced ) } } fun Component.toLegacyString(): String { return legacySerializer.serialize( this ) } val Player.getDisplayName: String get() = legacySerializer.serialize( this.displayName() )