Convert legacy color codes; fix tablist & deps
Add conversion of legacy Bukkit color codes (§-codes) to MiniMessage tags in ServerRankProvider to avoid MiniMessage parsing errors when deserializing rank prefixes. Introduce convertLegacyToMiniMessage and use it before mm.deserialize. Fix tablist footer formatting by adjusting the ping tag closure in TablistManager. Update plugin.yml dependency name from "Volcano" to "Kup".
This commit is contained in:
@@ -91,7 +91,9 @@ class VolcanoServerRankProvider : ServerRankProvider {
|
|||||||
player: Player
|
player: Player
|
||||||
): Component
|
): Component
|
||||||
{
|
{
|
||||||
return mm.deserialize(getRank( player ).prefix)
|
val rawPrefix = getRank( player ).prefix
|
||||||
|
val sanitizedPrefix = convertLegacyToMiniMessage( rawPrefix )
|
||||||
|
return mm.deserialize( sanitizedPrefix )
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getRankColor(
|
override fun getRankColor(
|
||||||
@@ -109,4 +111,30 @@ class VolcanoServerRankProvider : ServerRankProvider {
|
|||||||
return coreAPI.rankManager.getByUUID( rank.uuid )
|
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 "<black>", "§1" to "<dark_blue>", "§2" to "<dark_green>",
|
||||||
|
"§3" to "<dark_aqua>", "§4" to "<dark_red>", "§5" to "<dark_purple>",
|
||||||
|
"§6" to "<gold>", "§7" to "<gray>", "§8" to "<dark_gray>",
|
||||||
|
"§9" to "<blue>", "§a" to "<green>", "§b" to "<aqua>",
|
||||||
|
"§c" to "<red>", "§d" to "<light_purple>", "§e" to "<yellow>",
|
||||||
|
"§f" to "<white>", "§k" to "<obfuscated>", "§l" to "<bold>",
|
||||||
|
"§m" to "<strikethrough>", "§n" to "<underlined>", "§o" to "<italic>",
|
||||||
|
"§r" to "<reset>"
|
||||||
|
)
|
||||||
|
|
||||||
|
replacements.forEach { ( legacy, tag ) ->
|
||||||
|
result = result.replace( legacy, tag )
|
||||||
|
}
|
||||||
|
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -297,7 +297,7 @@ class TablistManager(
|
|||||||
val footer = mm.deserialize(
|
val footer = mm.deserialize(
|
||||||
"\n<gray>Online: <white><online></white> " +
|
"\n<gray>Online: <white><online></white> " +
|
||||||
"<dark_gray>⬥</dark_gray> " +
|
"<dark_gray>⬥</dark_gray> " +
|
||||||
"Ping: <ping_color><ping>ms</ping_color></gray>\n",
|
"Ping: <ping_color><ping>ms</gray>\n",
|
||||||
Placeholder.unparsed( "online", online.toString() ),
|
Placeholder.unparsed( "online", online.toString() ),
|
||||||
Placeholder.unparsed( "ping", ping.toString() ),
|
Placeholder.unparsed( "ping", ping.toString() ),
|
||||||
// Ping-Farbe: grün < 80ms, gelb < 150ms, rot sonst
|
// Ping-Farbe: grün < 80ms, gelb < 150ms, rot sonst
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ api-version: '1.21'
|
|||||||
depend:
|
depend:
|
||||||
- "WorldEdit"
|
- "WorldEdit"
|
||||||
- "Apollo-Bukkit"
|
- "Apollo-Bukkit"
|
||||||
- "Volcano"
|
- "Kup"
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
speedhg.bypass:
|
speedhg.bypass:
|
||||||
|
|||||||
Reference in New Issue
Block a user