Support Component placeholders in language API
Add support for passing Components as placeholders in LanguageManager (getComponent, getMessageList) and add Player extension overloads (sendMsg, trans) that accept component pairs. Replace usages of legacy serialized strings with direct Component placeholders across kits, scoreboard, and listeners (remove legacySerializer imports/usages). Also normalize placeholder keys (remove angle brackets in ConnectListener) and scope legacySerializer as private in Extensions.
This commit is contained in:
@@ -90,6 +90,19 @@ class LanguageManager(
|
||||
return data?.lists?.get( key ) ?: listOf( "<red>Missing List: $key</red>" )
|
||||
}
|
||||
|
||||
fun getMessageList(
|
||||
player: Player,
|
||||
key: String,
|
||||
placeholders: Map<String, String>,
|
||||
components: Map<String, Component> = mapOf()
|
||||
): List<Component>
|
||||
{
|
||||
val rawList = getRawMessageList( player, key )
|
||||
val compTags = components.map { (k, v) -> Placeholder.component( k, v ) }
|
||||
val tags = placeholders.map { (k, v) -> Placeholder.parsed( k, v ) }.plus( compTags )
|
||||
return rawList.map { str -> miniMessage.deserialize( str, *tags.toTypedArray() ) }
|
||||
}
|
||||
|
||||
fun getDefaultRawMessageList(
|
||||
key: String
|
||||
): List<String>
|
||||
@@ -101,13 +114,15 @@ class LanguageManager(
|
||||
fun getComponent(
|
||||
player: Player,
|
||||
key: String,
|
||||
placeholders: Map<String, String>
|
||||
placeholders: Map<String, String>,
|
||||
components: Map<String, Component> = mapOf()
|
||||
): Component
|
||||
{
|
||||
val prefixRaw = getRawMessage( player, "default.prefix" )
|
||||
val prefixTag = Placeholder.parsed( "prefix", prefixRaw )
|
||||
val raw = getRawMessage( player, key )
|
||||
val tags = placeholders.map { (k, v) -> Placeholder.parsed( k, v ) }.plus( prefixTag )
|
||||
val compTags = components.map { (k, v) -> Placeholder.component( k, v ) }
|
||||
val tags = placeholders.map { (k, v) -> Placeholder.parsed( k, v ) }.plus( prefixTag ).plus( compTags )
|
||||
return miniMessage.deserialize( raw, *tags.toTypedArray() )
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user