forked from SteamWar/SteamWar
@@ -58,7 +58,7 @@ public class Message {
|
|||||||
return parse(message, false, sender, params);
|
return parse(message, false, sender, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageFormat parseRaw(String message, boolean prefixed, CommandSender sender) {
|
private String parse(String message, boolean prefixed, CommandSender sender, Object... params){
|
||||||
Locale locale;
|
Locale locale;
|
||||||
if(sender instanceof Player)
|
if(sender instanceof Player)
|
||||||
locale = getLocale((Player) sender);
|
locale = getLocale((Player) sender);
|
||||||
@@ -71,12 +71,7 @@ public class Message {
|
|||||||
pattern = fromRB(resourceBundle, "PREFIX") + " ";
|
pattern = fromRB(resourceBundle, "PREFIX") + " ";
|
||||||
pattern += fromRB(resourceBundle, message);
|
pattern += fromRB(resourceBundle, message);
|
||||||
|
|
||||||
return new MessageFormat(pattern, locale);
|
return new MessageFormat(pattern, locale).format(params);
|
||||||
}
|
|
||||||
|
|
||||||
private String parse(String message, boolean prefixed, CommandSender sender, Object... params){
|
|
||||||
|
|
||||||
return parseRaw(message, prefixed, sender).format(params);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String fromRB(ResourceBundle bundle, String key) {
|
private String fromRB(ResourceBundle bundle, String key) {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package de.steamwar.tntleague
|
package de.steamwar.tntleague
|
||||||
|
|
||||||
import de.steamwar.message.Message
|
|
||||||
import de.steamwar.tntleague.command.AcceptCommand
|
import de.steamwar.tntleague.command.AcceptCommand
|
||||||
import de.steamwar.tntleague.command.InviteCommand
|
import de.steamwar.tntleague.command.InviteCommand
|
||||||
import de.steamwar.tntleague.command.LeaveCommand
|
import de.steamwar.tntleague.command.LeaveCommand
|
||||||
@@ -10,14 +9,11 @@ import de.steamwar.tntleague.events.LobbyListener
|
|||||||
import net.kyori.adventure.key.Key
|
import net.kyori.adventure.key.Key
|
||||||
import net.kyori.adventure.translation.GlobalTranslator
|
import net.kyori.adventure.translation.GlobalTranslator
|
||||||
import net.kyori.adventure.translation.TranslationRegistry
|
import net.kyori.adventure.translation.TranslationRegistry
|
||||||
import net.kyori.adventure.translation.Translator
|
|
||||||
import net.kyori.adventure.util.UTF8ResourceBundleControl
|
import net.kyori.adventure.util.UTF8ResourceBundleControl
|
||||||
import org.bukkit.plugin.java.JavaPlugin
|
import org.bukkit.plugin.java.JavaPlugin
|
||||||
import java.text.MessageFormat
|
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
lateinit var plugin: TNTLeague
|
lateinit var plugin: TNTLeague
|
||||||
lateinit var message: Message
|
|
||||||
|
|
||||||
class TNTLeague : JavaPlugin() {
|
class TNTLeague : JavaPlugin() {
|
||||||
init {
|
init {
|
||||||
@@ -26,8 +22,18 @@ class TNTLeague : JavaPlugin() {
|
|||||||
|
|
||||||
override fun onEnable() {
|
override fun onEnable() {
|
||||||
saveResource("config.yml", false)
|
saveResource("config.yml", false)
|
||||||
|
saveDefaultConfig()
|
||||||
|
|
||||||
message = Message("de.steamwar.tntleague.TNTLeague", classLoader)
|
val registry = TranslationRegistry.create(Key.key("steamwar:tntleague"))
|
||||||
|
|
||||||
|
val bundleDe = ResourceBundle.getBundle("de.steamwar.tntleague.TNTLeague", Locale.GERMAN, UTF8ResourceBundleControl())
|
||||||
|
val bundleEn = ResourceBundle.getBundle("de.steamwar.tntleague.TNTLeague", Locale.US, UTF8ResourceBundleControl())
|
||||||
|
registry.defaultLocale(Locale.GERMAN)
|
||||||
|
|
||||||
|
registry.registerAll(Locale.GERMAN, bundleDe, true)
|
||||||
|
registry.registerAll(Locale.US, bundleEn, true)
|
||||||
|
|
||||||
|
GlobalTranslator.translator().addSource(registry)
|
||||||
|
|
||||||
server.pluginManager.registerEvents(LobbyListener, this)
|
server.pluginManager.registerEvents(LobbyListener, this)
|
||||||
server.pluginManager.registerEvents(GlobalListener, this)
|
server.pluginManager.registerEvents(GlobalListener, this)
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
PREFIX=§4TNT§6League §8»
|
|
||||||
join=§e{0} §7joined the game!
|
|
||||||
joinTeam=§e{0} §7joined the {1} §7team!
|
|
||||||
quit=§e{0} §7left the game!
|
|
||||||
quitTeam=§e{0} §7left the {1} §7team!
|
|
||||||
blue=§9Blue
|
|
||||||
red=§cRed
|
|
||||||
shutdown=§7The server stops in §e{0} §7seconds!
|
|
||||||
teamWin=§aTeam {0} §awins!
|
|
||||||
|
|
||||||
notEnoughCoins=§cYou don't have enough coins to buy this item!
|
|
||||||
|
|
||||||
gameStarting=§7The game starts in §e{0} §7seconds!
|
|
||||||
gameStart=§7Starting in §e{0}
|
|
||||||
gameStarted=§aThe game has started!
|
|
||||||
|
|
||||||
timeRemaining=§e{0} §7minutes remaining!
|
|
||||||
|
|
||||||
gameEnded=§eThe game has ended!
|
|
||||||
draw=§7The game ended in a draw!
|
|
||||||
dealer=Shopkeeper
|
|
||||||
dealerPrice=§7Price: §e{0} §7Coins
|
|
||||||
|
|
||||||
scoreboardTime=§7Time: §e{0}§8:§e{1}
|
|
||||||
scoreboardTeam=§7Team {0}§8: §e{1}
|
|
||||||
ready=§aReady
|
|
||||||
notReady=§cNot ready
|
|
||||||
isReady=§7Team {0} §7is ready!
|
|
||||||
isNotReady=§7Team {0} §7is not ready!
|
|
||||||
|
|
||||||
invited=§e{0} §7invited you to join the {1} §7team! §e*Click*
|
|
||||||
invitedHover=§7Click to join the {0} §7team!
|
|
||||||
invitedPlayer=§7Invited §e{0} §7to join your team!
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
join=§e{0} §7ist dem Spiel beigetreten!
|
|
||||||
joinTeam=§e{0} §7ist dem {1} §7team begetreten!
|
|
||||||
quit=§e{0} §7hat das Spiel verlassen!
|
|
||||||
quitTeam=§e{0} §7hat das {1} §7team verlassen!
|
|
||||||
blue=§9Blau
|
|
||||||
red=§cRot
|
|
||||||
shutdown=§7Der Server fährt in §e{0} §7sekunden herunter!
|
|
||||||
teamWin=§aTeam {0} §agewinnt!
|
|
||||||
notEnoughCoins=§cDu hast nicht genug Coins um dir das zu kaufen!
|
|
||||||
gameStarting=§7Das Spiel beginnt in §e{0} §7Sekunden!
|
|
||||||
gameStart=§7Start in §e{0}
|
|
||||||
gameStarted=§aDas Spiel beginnt!
|
|
||||||
timeRemaining=§7noch §e{0} §7Minuten!
|
|
||||||
gameEnded=§eDas Spiel ist vorbei!
|
|
||||||
draw=§7Keiner hat gewonnen!
|
|
||||||
dealer=Händler
|
|
||||||
dealerItem={0} {1}
|
|
||||||
dealerPrice=§7Kosten: §e{0} §7Coins
|
|
||||||
|
|
||||||
scoreboardTarget=Ziel: {0}
|
|
||||||
scoreboardTime=§7Zeit: §e{0}§8:§e{1}
|
|
||||||
ready=§aBereit
|
|
||||||
notReady=§cNicht bereit
|
|
||||||
isReady=§aTeam {0} §aist bereit!
|
|
||||||
isNotReady=§7Team {0} §7ist nicht bereit!
|
|
||||||
invited=§e{0} §7hat dich in team {1} §7eingeladen! §e*Klick*
|
|
||||||
invitedHover=§7Team {0} §7beitreten!
|
|
||||||
invitedPlayer=§e{0} §7wurde eingeladen!
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
join={0} ist dem Spiel beigetreten!
|
||||||
|
joinTeam={0} ist dem {1} team begetreten!
|
||||||
|
quit={0} hat das Spiel verlassen!
|
||||||
|
quitTeam={0} hat das {1} team verlassen!
|
||||||
|
blue=Blau
|
||||||
|
red=Rot
|
||||||
|
shutdown=Der Server fährt in {0} sekunden herunter!
|
||||||
|
teamWin=Team {0} gewinnt!
|
||||||
|
notEnoughCoins=Du hast nicht genug Coins um dir das zu kaufen!
|
||||||
|
gameStarting=Das Spiel beginnt in {0} Sekunden!
|
||||||
|
gameStart=Start in {0}
|
||||||
|
gameStarted=Das Spiel beginnt!
|
||||||
|
timeRemaining=noch {0} Minuten!
|
||||||
|
gameEnded=Das Spiel ist vorbei!
|
||||||
|
draw=Keiner hat gewonnen!
|
||||||
|
chat={0}» {1}
|
||||||
|
dealer=Händler
|
||||||
|
dealerItem={0} {1}
|
||||||
|
dealerPrice=Kosten: {0} Coins
|
||||||
|
|
||||||
|
scoreboardTarget=Ziel: {0}
|
||||||
|
scoreboardTime=Zeit: {0}:{1}
|
||||||
|
scoreboardTeam=Team {0}: {1}
|
||||||
|
ready=Bereit
|
||||||
|
notReady=Nicht bereit
|
||||||
|
isReady=Team {0} ist bereit!
|
||||||
|
isNotReady=Team {0} ist nicht bereit!
|
||||||
|
invited={0} hat dich in team {1} eingeladen! *Klick*
|
||||||
|
invitedHover=Team {0} beitreten!
|
||||||
|
invitedPlayer={0} wurde eingeladen!
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
join={0} joined the game!
|
||||||
|
joinTeam={0} joined the {1} team!
|
||||||
|
quit={0} left the game!
|
||||||
|
quitTeam={0} left the {1} team!
|
||||||
|
blue=Blue
|
||||||
|
red=Red
|
||||||
|
shutdown=The server stops in {0} seconds!
|
||||||
|
teamWin=Team {0} wins!
|
||||||
|
|
||||||
|
notEnoughCoins=You don't have enough coins to buy this item!
|
||||||
|
|
||||||
|
gameStarting=The game starts in {0} seconds!
|
||||||
|
gameStart=Starting in {0}
|
||||||
|
gameStarted=The game has started!
|
||||||
|
|
||||||
|
timeRemaining={0} minutes remaining!
|
||||||
|
|
||||||
|
gameEnded=The game has ended!
|
||||||
|
draw=The game ended in a draw!
|
||||||
|
dealer=Shopkeeper
|
||||||
|
dealerPrice=Price: {0} Coins
|
||||||
|
|
||||||
|
scoreboardTarget=Target: {0}
|
||||||
|
scoreboardTime=Time: {0}:{1}
|
||||||
|
ready=Ready
|
||||||
|
notReady=Not ready
|
||||||
|
isReady=Team {0} is ready!
|
||||||
|
isNotReady=Team {0} is not ready!
|
||||||
|
|
||||||
|
invited={0} invited you to join the {1} team! *Click*
|
||||||
|
invitedHover=Click to join the {0} team!
|
||||||
|
invitedPlayer=Invited {0} to join your team!
|
||||||
@@ -37,7 +37,7 @@ object InviteCommand: SWCommand("invite") {
|
|||||||
val team = TNTLeagueGame.getTeam(sender)!!
|
val team = TNTLeagueGame.getTeam(sender)!!
|
||||||
team.invites.add(target)
|
team.invites.add(target)
|
||||||
|
|
||||||
target.sendMessage(translate("invited", sender, sender.name.yellow(), translate(team.name, sender).colorByTeam(team)).basic().clickEvent(
|
target.sendMessage(translate("invited", sender.name.yellow(), translate(team.name).colorByTeam(team)).basic().clickEvent(
|
||||||
ClickEvent.callback {
|
ClickEvent.callback {
|
||||||
if (target !in team.invites) return@callback
|
if (target !in team.invites) return@callback
|
||||||
|
|
||||||
@@ -45,8 +45,8 @@ object InviteCommand: SWCommand("invite") {
|
|||||||
team.opposite.invites.remove(target)
|
team.opposite.invites.remove(target)
|
||||||
team.join(target)
|
team.join(target)
|
||||||
})
|
})
|
||||||
.hoverEvent(HoverEvent.showText(translate("invitedHover", sender, translate(team.name, sender).colorByTeam(team)).green())))
|
.hoverEvent(HoverEvent.showText(translate("invitedHover", translate(team.name).colorByTeam(team)).green())))
|
||||||
sender.sendMessage(translate("invitedPlayer", sender, target.name.yellow()).basic())
|
sender.sendMessage(translate("invitedPlayer", target.name.yellow()).basic())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Validator("isLeader", local = false)
|
@Validator("isLeader", local = false)
|
||||||
|
|||||||
@@ -21,17 +21,16 @@ import org.bukkit.event.player.PlayerRespawnEvent
|
|||||||
|
|
||||||
object GlobalListener: Listener {
|
object GlobalListener: Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH)
|
@EventHandler(priority = EventPriority.LOW)
|
||||||
fun onPlayerJoin(e: PlayerJoinEvent) {
|
fun onPlayerJoin(e: PlayerJoinEvent) {
|
||||||
e.joinMessage(null)
|
e.joinMessage(null)
|
||||||
with(e.player) {
|
with(e.player) {
|
||||||
teleport(TNTLeagueWorldConfig.lobby)
|
teleport(TNTLeagueWorldConfig.lobby)
|
||||||
inventory.clear()
|
inventory.clear()
|
||||||
plugin.server.broadcast(translate("join", this, name.bold()).basic())
|
plugin.server.broadcast(translate("join", name.bold()).basic())
|
||||||
isOp = false
|
isOp = false
|
||||||
gameMode = GameMode.SPECTATOR
|
gameMode = GameMode.SPECTATOR
|
||||||
respawnLocation = TNTLeagueWorldConfig.lobby
|
respawnLocation = TNTLeagueWorldConfig.lobby
|
||||||
println(locale())
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,4 +78,11 @@ object GlobalListener: Listener {
|
|||||||
null -> e.respawnLocation = TNTLeagueWorldConfig.lobby
|
null -> e.respawnLocation = TNTLeagueWorldConfig.lobby
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
fun onChat(e: AsyncChatEvent) {
|
||||||
|
e.renderer { source, sourceDisplayName, message, _ ->
|
||||||
|
translate("chat", sourceDisplayName.colorByTeam(TNTLeagueGame.getTeam(source)), message).basic()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -26,7 +26,7 @@ object IngameListener: Listener {
|
|||||||
fun onEntityInteract(e: PlayerInteractEntityEvent) {
|
fun onEntityInteract(e: PlayerInteractEntityEvent) {
|
||||||
if (e.player.gameMode == GameMode.SPECTATOR) return
|
if (e.player.gameMode == GameMode.SPECTATOR) return
|
||||||
|
|
||||||
if(e.rightClicked.type == EntityType.WANDERING_TRADER) {
|
if(e.rightClicked.type == EntityType.VILLAGER) {
|
||||||
e.isCancelled = true
|
e.isCancelled = true
|
||||||
e.player.openInventory(DealerInventory(e.player).getInventory())
|
e.player.openInventory(DealerInventory(e.player).getInventory())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import org.bukkit.event.player.PlayerQuitEvent
|
|||||||
|
|
||||||
object LobbyListener: Listener {
|
object LobbyListener: Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST)
|
@EventHandler
|
||||||
fun onPlayerJoin(e: PlayerJoinEvent) {
|
fun onPlayerJoin(e: PlayerJoinEvent) {
|
||||||
TNTLeagueGame.getFreeTeam()?.run {
|
TNTLeagueGame.getFreeTeam()?.run {
|
||||||
join(e.player)
|
join(e.player)
|
||||||
|
|||||||
@@ -11,18 +11,19 @@ import de.steamwar.tntleague.events.DummyListener
|
|||||||
import de.steamwar.tntleague.events.IngameListener
|
import de.steamwar.tntleague.events.IngameListener
|
||||||
import de.steamwar.tntleague.events.LobbyListener
|
import de.steamwar.tntleague.events.LobbyListener
|
||||||
import de.steamwar.tntleague.inventory.DealerInventory
|
import de.steamwar.tntleague.inventory.DealerInventory
|
||||||
import de.steamwar.tntleague.message
|
|
||||||
import de.steamwar.tntleague.plugin
|
import de.steamwar.tntleague.plugin
|
||||||
import de.steamwar.tntleague.util.*
|
import de.steamwar.tntleague.util.*
|
||||||
import net.kyori.adventure.bossbar.BossBar
|
import net.kyori.adventure.bossbar.BossBar
|
||||||
import net.kyori.adventure.sound.Sound
|
import net.kyori.adventure.sound.Sound
|
||||||
import net.kyori.adventure.text.Component
|
|
||||||
import org.bukkit.GameMode
|
import org.bukkit.GameMode
|
||||||
import org.bukkit.Location
|
import org.bukkit.Location
|
||||||
import org.bukkit.Material
|
import org.bukkit.Material
|
||||||
|
import org.bukkit.block.data.type.TNT
|
||||||
|
import org.bukkit.entity.Entity
|
||||||
import org.bukkit.entity.Item
|
import org.bukkit.entity.Item
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
import org.bukkit.entity.TNTPrimed
|
import org.bukkit.entity.TNTPrimed
|
||||||
|
import org.bukkit.entity.Villager
|
||||||
import org.bukkit.event.HandlerList
|
import org.bukkit.event.HandlerList
|
||||||
import org.bukkit.event.Listener
|
import org.bukkit.event.Listener
|
||||||
import org.bukkit.inventory.ItemStack
|
import org.bukkit.inventory.ItemStack
|
||||||
@@ -61,7 +62,7 @@ object TNTLeagueGame {
|
|||||||
blueTeam.start()
|
blueTeam.start()
|
||||||
redTeam.start()
|
redTeam.start()
|
||||||
|
|
||||||
message.broadcast("gameStarted")
|
plugin.server.broadcast(translate("gameStarted").success())
|
||||||
|
|
||||||
val tnt = ItemStack(Material.TNT)
|
val tnt = ItemStack(Material.TNT)
|
||||||
|
|
||||||
@@ -86,7 +87,7 @@ object TNTLeagueGame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gameTimeRemaining % 300 == 0) {
|
if (gameTimeRemaining % 300 == 0) {
|
||||||
message.broadcast("timeRemaining", gameTimeRemaining / 60)
|
plugin.server.broadcast(translate("timeRemaining", (gameTimeRemaining / 60).toString().yellow()).basic())
|
||||||
plugin.server.onlinePlayers.forEach { it.playSound(Sound.sound(org.bukkit.Sound.BLOCK_NOTE_BLOCK_PLING.key, Sound.Source.MASTER, 1f, 1f)) }
|
plugin.server.onlinePlayers.forEach { it.playSound(Sound.sound(org.bukkit.Sound.BLOCK_NOTE_BLOCK_PLING.key, Sound.Source.MASTER, 1f, 1f)) }
|
||||||
}
|
}
|
||||||
}, 20, 20)
|
}, 20, 20)
|
||||||
@@ -104,7 +105,7 @@ object TNTLeagueGame {
|
|||||||
it.playSound(Sound.sound(org.bukkit.Sound.ENTITY_ENDER_DRAGON_DEATH.key, Sound.Source.MASTER, 1f, 1f))
|
it.playSound(Sound.sound(org.bukkit.Sound.ENTITY_ENDER_DRAGON_DEATH.key, Sound.Source.MASTER, 1f, 1f))
|
||||||
}
|
}
|
||||||
|
|
||||||
message.broadcast("gameEnded")
|
plugin.server.broadcast(translate("gameEnded").success())
|
||||||
|
|
||||||
spawnerTask.cancel()
|
spawnerTask.cancel()
|
||||||
|
|
||||||
@@ -115,7 +116,7 @@ object TNTLeagueGame {
|
|||||||
plugin.server.shutdown()
|
plugin.server.shutdown()
|
||||||
}
|
}
|
||||||
|
|
||||||
message.broadcast("shutdown", shutdown)
|
plugin.server.broadcast(translate("shutdown", shutdown.toString().yellow()).basic())
|
||||||
|
|
||||||
shutdown--
|
shutdown--
|
||||||
}, 20, 20)
|
}, 20, 20)
|
||||||
@@ -134,8 +135,8 @@ object TNTLeagueGame {
|
|||||||
state = GameState.STARTING
|
state = GameState.STARTING
|
||||||
|
|
||||||
var countdown = TNTLeagueConfig.config.startDelay
|
var countdown = TNTLeagueConfig.config.startDelay
|
||||||
message.broadcast("gameStarting", countdown)
|
plugin.server.broadcast(translate("gameStarting", countdown.toString().yellow()).basic())
|
||||||
val bar = BossBar.bossBar(Component.text(message.parse("gameStart", countdown)), (TNTLeagueConfig.config.startDelay - countdown) / TNTLeagueConfig.config.startDelay.toFloat(), BossBar.Color.GREEN, BossBar.Overlay.NOTCHED_10)
|
val bar = BossBar.bossBar(translate("gameStart", countdown.toString().yellow()).gray(), (TNTLeagueConfig.config.startDelay - countdown) / TNTLeagueConfig.config.startDelay.toFloat(), BossBar.Color.GREEN, BossBar.Overlay.NOTCHED_10)
|
||||||
plugin.server.onlinePlayers.forEach { bar.addViewer(it) }
|
plugin.server.onlinePlayers.forEach { bar.addViewer(it) }
|
||||||
task = plugin.server.scheduler.scheduleSyncRepeatingTask(plugin, {
|
task = plugin.server.scheduler.scheduleSyncRepeatingTask(plugin, {
|
||||||
plugin.server.onlinePlayers.forEach { it.playSound(Sound.sound(org.bukkit.Sound.ENTITY_EXPERIENCE_ORB_PICKUP.key, Sound.Source.MASTER, 1f, 1f)) }
|
plugin.server.onlinePlayers.forEach { it.playSound(Sound.sound(org.bukkit.Sound.ENTITY_EXPERIENCE_ORB_PICKUP.key, Sound.Source.MASTER, 1f, 1f)) }
|
||||||
|
|||||||
@@ -1,21 +1,15 @@
|
|||||||
package de.steamwar.tntleague.util
|
package de.steamwar.tntleague.util
|
||||||
|
|
||||||
import de.steamwar.tntleague.game.TNTLeagueTeam
|
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.Component
|
||||||
import net.kyori.adventure.text.ComponentLike
|
import net.kyori.adventure.text.ComponentLike
|
||||||
import net.kyori.adventure.text.TextComponent
|
|
||||||
import net.kyori.adventure.text.TranslatableComponent
|
import net.kyori.adventure.text.TranslatableComponent
|
||||||
import net.kyori.adventure.text.format.NamedTextColor
|
import net.kyori.adventure.text.format.NamedTextColor
|
||||||
import net.kyori.adventure.text.format.Style
|
import net.kyori.adventure.text.format.Style
|
||||||
import net.kyori.adventure.text.format.TextDecoration
|
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.text.serializer.legacy.LegacyComponentSerializer
|
||||||
import net.kyori.adventure.translation.GlobalTranslator
|
import net.kyori.adventure.translation.GlobalTranslator
|
||||||
import net.kyori.adventure.translation.Translator
|
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
import java.text.MessageFormat
|
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
val prefix = Component.text("Steam").yellow()
|
val prefix = Component.text("Steam").yellow()
|
||||||
@@ -29,11 +23,11 @@ val tntLeagueChatPrefix: Component = tntLeaguePrefix
|
|||||||
.append(Component.text("»").darkGray())
|
.append(Component.text("»").darkGray())
|
||||||
.appendSpace()
|
.appendSpace()
|
||||||
|
|
||||||
fun Component.basic(): Component = tntLeagueChatPrefix.append(this.gray())
|
fun TranslatableComponent.basic(): Component = tntLeagueChatPrefix.append(this.gray())
|
||||||
|
|
||||||
fun Component.error(): Component = tntLeagueChatPrefix.append(this.red())
|
fun TranslatableComponent.error(): Component = tntLeagueChatPrefix.append(this.red())
|
||||||
|
|
||||||
fun Component.success(): Component = tntLeagueChatPrefix.append(this.green())
|
fun TranslatableComponent.success(): Component = tntLeagueChatPrefix.append(this.green())
|
||||||
|
|
||||||
fun String.component(): Component = Component.text(this)
|
fun String.component(): Component = Component.text(this)
|
||||||
|
|
||||||
@@ -63,6 +57,8 @@ fun String.darkGray(): Component = this.component().darkGray()
|
|||||||
|
|
||||||
fun Component.gold(): Component = this.color(NamedTextColor.GOLD)
|
fun Component.gold(): Component = this.color(NamedTextColor.GOLD)
|
||||||
|
|
||||||
|
fun translate(key: String, vararg args: ComponentLike): TranslatableComponent = Component.translatable(key, *args).decoration(TextDecoration.ITALIC, false)
|
||||||
|
|
||||||
fun Component.reset(): Component = this.style(Style.empty())
|
fun Component.reset(): Component = this.style(Style.empty())
|
||||||
|
|
||||||
fun Component.colorByTeam(team: TNTLeagueTeam?) = when (team) {
|
fun Component.colorByTeam(team: TNTLeagueTeam?) = when (team) {
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ main: de.steamwar.tntleague.TNTLeague
|
|||||||
load: POSTWORLD
|
load: POSTWORLD
|
||||||
api-version: '1.21'
|
api-version: '1.21'
|
||||||
dependencies:
|
dependencies:
|
||||||
server:
|
- name: SpigotCore
|
||||||
SpigotCore:
|
required: true
|
||||||
required: true
|
- name: KotlinCore
|
||||||
load: BEFORE
|
required: true
|
||||||
KotlinCore:
|
|
||||||
required: true
|
|
||||||
load: BEFORE
|
|
||||||
Reference in New Issue
Block a user