diff --git a/src/main/kotlin/club/mcscrims/speedhg/scoreboard/ServerRankProvider.kt b/src/main/kotlin/club/mcscrims/speedhg/scoreboard/ServerRankProvider.kt index 225ad55..2eb0519 100644 --- a/src/main/kotlin/club/mcscrims/speedhg/scoreboard/ServerRankProvider.kt +++ b/src/main/kotlin/club/mcscrims/speedhg/scoreboard/ServerRankProvider.kt @@ -91,7 +91,9 @@ class VolcanoServerRankProvider : ServerRankProvider { player: Player ): Component { - return mm.deserialize(getRank( player ).prefix) + val rawPrefix = getRank( player ).prefix + val sanitizedPrefix = convertLegacyToMiniMessage( rawPrefix ) + return mm.deserialize( sanitizedPrefix ) } override fun getRankColor( @@ -109,4 +111,30 @@ class VolcanoServerRankProvider : ServerRankProvider { return coreAPI.rankManager.getByUUID( rank.uuid ) } + /** + * Konvertiert alte Bukkit-Farbcodes in MiniMessage-Tags, um Parsing-Fehler zu vermeiden. + */ + private fun convertLegacyToMiniMessage( + text: String + ): String + { + var result = text + val replacements = mapOf( + "§0" to "", "§1" to "", "§2" to "", + "§3" to "", "§4" to "", "§5" to "", + "§6" to "", "§7" to "", "§8" to "", + "§9" to "", "§a" to "", "§b" to "", + "§c" to "", "§d" to "", "§e" to "", + "§f" to "", "§k" to "", "§l" to "", + "§m" to "", "§n" to "", "§o" to "", + "§r" to "" + ) + + replacements.forEach { ( legacy, tag ) -> + result = result.replace( legacy, tag ) + } + + return result + } + } \ No newline at end of file diff --git a/src/main/kotlin/club/mcscrims/speedhg/scoreboard/TablistManager.kt b/src/main/kotlin/club/mcscrims/speedhg/scoreboard/TablistManager.kt index c185286..b6648ec 100644 --- a/src/main/kotlin/club/mcscrims/speedhg/scoreboard/TablistManager.kt +++ b/src/main/kotlin/club/mcscrims/speedhg/scoreboard/TablistManager.kt @@ -297,7 +297,7 @@ class TablistManager( val footer = mm.deserialize( "\nOnline: " + " " + - "Ping: ms\n", + "Ping: ms\n", Placeholder.unparsed( "online", online.toString() ), Placeholder.unparsed( "ping", ping.toString() ), // Ping-Farbe: grün < 80ms, gelb < 150ms, rot sonst diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b59e3c1..b06b027 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -6,7 +6,7 @@ api-version: '1.21' depend: - "WorldEdit" - "Apollo-Bukkit" - - "Volcano" + - "Kup" permissions: speedhg.bypass: