forked from SteamWar/SteamWar
78 lines
2.7 KiB
Kotlin
78 lines
2.7 KiB
Kotlin
package de.steamwar.tntleague.util
|
|
|
|
import de.steamwar.tntleague.game.TNTLeagueTeam
|
|
import de.steamwar.tntleague.message
|
|
import net.kyori.adventure.key.Key
|
|
import net.kyori.adventure.text.Component
|
|
import net.kyori.adventure.text.ComponentLike
|
|
import net.kyori.adventure.text.TextComponent
|
|
import net.kyori.adventure.text.TranslatableComponent
|
|
import net.kyori.adventure.text.format.NamedTextColor
|
|
import net.kyori.adventure.text.format.Style
|
|
import net.kyori.adventure.text.format.TextDecoration
|
|
import net.kyori.adventure.text.renderer.TranslatableComponentRenderer
|
|
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer
|
|
import net.kyori.adventure.translation.GlobalTranslator
|
|
import net.kyori.adventure.translation.Translator
|
|
import org.bukkit.entity.Player
|
|
import java.text.MessageFormat
|
|
import java.util.Locale
|
|
|
|
val prefix = Component.text("Steam").yellow()
|
|
.append(Component.text("War").darkGray())
|
|
.appendSpace()
|
|
|
|
val tntLeaguePrefix = Component.text("TNT").color(NamedTextColor.DARK_RED)
|
|
.append(Component.text("League").color(NamedTextColor.GOLD))
|
|
|
|
val tntLeagueChatPrefix: Component = tntLeaguePrefix
|
|
.append(Component.text("»").darkGray())
|
|
.appendSpace()
|
|
|
|
fun Component.basic(): Component = tntLeagueChatPrefix.append(this.gray())
|
|
|
|
fun Component.error(): Component = tntLeagueChatPrefix.append(this.red())
|
|
|
|
fun Component.success(): Component = tntLeagueChatPrefix.append(this.green())
|
|
|
|
fun String.component(): Component = Component.text(this)
|
|
|
|
fun Component.bold(): Component = this.decorate(TextDecoration.BOLD)
|
|
|
|
fun String.bold(): Component = this.component().bold()
|
|
|
|
fun Component.yellow(): Component = this.color(NamedTextColor.YELLOW)
|
|
|
|
fun String.yellow(): Component = this.component().yellow()
|
|
|
|
fun Component.red(): Component = this.color(NamedTextColor.RED)
|
|
|
|
fun String.red(): Component = this.component().red()
|
|
|
|
fun Component.green(): Component = this.color(NamedTextColor.GREEN)
|
|
|
|
fun String.green(): Component = this.component().green()
|
|
|
|
fun Component.gray(): Component = this.color(NamedTextColor.GRAY)
|
|
|
|
fun String.gray(): Component = this.component().gray()
|
|
|
|
fun Component.darkGray(): Component = this.color(NamedTextColor.DARK_GRAY)
|
|
|
|
fun String.darkGray(): Component = this.component().darkGray()
|
|
|
|
fun Component.gold(): Component = this.color(NamedTextColor.GOLD)
|
|
|
|
fun Component.reset(): Component = this.style(Style.empty())
|
|
|
|
fun Component.colorByTeam(team: TNTLeagueTeam?) = when (team) {
|
|
null -> this.gray()
|
|
else -> this.color(team.color)
|
|
}
|
|
|
|
fun Component.translate(locale: Locale): Component = GlobalTranslator.render(this, locale)
|
|
|
|
fun Component.translate(p: Player): Component = this.translate(p.locale())
|
|
|
|
fun Component.toLegacy(): String = LegacyComponentSerializer.legacySection().serialize(this)
|