Revert "Update Message"

This reverts commit ac9197c554.
This commit is contained in:
2024-11-14 22:18:34 +01:00
parent 26f15304a2
commit 9dff1f5884
13 changed files with 107 additions and 105 deletions
@@ -58,7 +58,7 @@ public class Message {
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;
if(sender instanceof Player)
locale = getLocale((Player) sender);
@@ -71,12 +71,7 @@ public class Message {
pattern = fromRB(resourceBundle, "PREFIX") + " ";
pattern += fromRB(resourceBundle, message);
return new MessageFormat(pattern, locale);
}
private String parse(String message, boolean prefixed, CommandSender sender, Object... params){
return parseRaw(message, prefixed, sender).format(params);
return new MessageFormat(pattern, locale).format(params);
}
private String fromRB(ResourceBundle bundle, String key) {
@@ -1,6 +1,5 @@
package de.steamwar.tntleague
import de.steamwar.message.Message
import de.steamwar.tntleague.command.AcceptCommand
import de.steamwar.tntleague.command.InviteCommand
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.translation.GlobalTranslator
import net.kyori.adventure.translation.TranslationRegistry
import net.kyori.adventure.translation.Translator
import net.kyori.adventure.util.UTF8ResourceBundleControl
import org.bukkit.plugin.java.JavaPlugin
import java.text.MessageFormat
import java.util.*
lateinit var plugin: TNTLeague
lateinit var message: Message
class TNTLeague : JavaPlugin() {
init {
@@ -26,8 +22,18 @@ class TNTLeague : JavaPlugin() {
override fun onEnable() {
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(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)!!
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 {
if (target !in team.invites) return@callback
@@ -45,8 +45,8 @@ object InviteCommand: SWCommand("invite") {
team.opposite.invites.remove(target)
team.join(target)
})
.hoverEvent(HoverEvent.showText(translate("invitedHover", sender, translate(team.name, sender).colorByTeam(team)).green())))
sender.sendMessage(translate("invitedPlayer", sender, target.name.yellow()).basic())
.hoverEvent(HoverEvent.showText(translate("invitedHover", translate(team.name).colorByTeam(team)).green())))
sender.sendMessage(translate("invitedPlayer", target.name.yellow()).basic())
}
@Validator("isLeader", local = false)
@@ -21,17 +21,16 @@ import org.bukkit.event.player.PlayerRespawnEvent
object GlobalListener: Listener {
@EventHandler(priority = EventPriority.HIGH)
@EventHandler(priority = EventPriority.LOW)
fun onPlayerJoin(e: PlayerJoinEvent) {
e.joinMessage(null)
with(e.player) {
teleport(TNTLeagueWorldConfig.lobby)
inventory.clear()
plugin.server.broadcast(translate("join", this, name.bold()).basic())
plugin.server.broadcast(translate("join", name.bold()).basic())
isOp = false
gameMode = GameMode.SPECTATOR
respawnLocation = TNTLeagueWorldConfig.lobby
println(locale())
}
}
@@ -79,4 +78,11 @@ object GlobalListener: Listener {
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) {
if (e.player.gameMode == GameMode.SPECTATOR) return
if(e.rightClicked.type == EntityType.WANDERING_TRADER) {
if(e.rightClicked.type == EntityType.VILLAGER) {
e.isCancelled = true
e.player.openInventory(DealerInventory(e.player).getInventory())
}
@@ -20,7 +20,7 @@ import org.bukkit.event.player.PlayerQuitEvent
object LobbyListener: Listener {
@EventHandler(priority = EventPriority.HIGHEST)
@EventHandler
fun onPlayerJoin(e: PlayerJoinEvent) {
TNTLeagueGame.getFreeTeam()?.run {
join(e.player)
@@ -11,18 +11,19 @@ import de.steamwar.tntleague.events.DummyListener
import de.steamwar.tntleague.events.IngameListener
import de.steamwar.tntleague.events.LobbyListener
import de.steamwar.tntleague.inventory.DealerInventory
import de.steamwar.tntleague.message
import de.steamwar.tntleague.plugin
import de.steamwar.tntleague.util.*
import net.kyori.adventure.bossbar.BossBar
import net.kyori.adventure.sound.Sound
import net.kyori.adventure.text.Component
import org.bukkit.GameMode
import org.bukkit.Location
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.Player
import org.bukkit.entity.TNTPrimed
import org.bukkit.entity.Villager
import org.bukkit.event.HandlerList
import org.bukkit.event.Listener
import org.bukkit.inventory.ItemStack
@@ -61,7 +62,7 @@ object TNTLeagueGame {
blueTeam.start()
redTeam.start()
message.broadcast("gameStarted")
plugin.server.broadcast(translate("gameStarted").success())
val tnt = ItemStack(Material.TNT)
@@ -86,7 +87,7 @@ object TNTLeagueGame {
}
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)) }
}
}, 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))
}
message.broadcast("gameEnded")
plugin.server.broadcast(translate("gameEnded").success())
spawnerTask.cancel()
@@ -115,7 +116,7 @@ object TNTLeagueGame {
plugin.server.shutdown()
}
message.broadcast("shutdown", shutdown)
plugin.server.broadcast(translate("shutdown", shutdown.toString().yellow()).basic())
shutdown--
}, 20, 20)
@@ -134,8 +135,8 @@ object TNTLeagueGame {
state = GameState.STARTING
var countdown = TNTLeagueConfig.config.startDelay
message.broadcast("gameStarting", countdown)
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)
plugin.server.broadcast(translate("gameStarting", countdown.toString().yellow()).basic())
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) }
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)) }
@@ -1,21 +1,15 @@
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()
@@ -29,11 +23,11 @@ val tntLeagueChatPrefix: Component = tntLeaguePrefix
.append(Component.text("»").darkGray())
.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)
@@ -63,6 +57,8 @@ fun String.darkGray(): Component = this.component().darkGray()
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.colorByTeam(team: TNTLeagueTeam?) = when (team) {
+4 -7
View File
@@ -4,10 +4,7 @@ main: de.steamwar.tntleague.TNTLeague
load: POSTWORLD
api-version: '1.21'
dependencies:
server:
SpigotCore:
required: true
load: BEFORE
KotlinCore:
required: true
load: BEFORE
- name: SpigotCore
required: true
- name: KotlinCore
required: true