mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-16 19:05:02 -04:00
restrict chat mode even more
This commit is contained in:
parent
a3a98c2897
commit
f9be5680d1
@ -41,9 +41,9 @@ class SignedChatMessage(
|
||||
// ToDo: parent (formatting)
|
||||
val data = type.chat.formatParameters(parameters)
|
||||
text = if (connection.language.canTranslate(type.chat.translationKey.toResourceLocation())) {
|
||||
connection.language.translate(type.chat.translationKey.toResourceLocation(), data = data)
|
||||
connection.language.translate(type.chat.translationKey.toResourceLocation(), restrictedMode = true, data = data)
|
||||
} else {
|
||||
Language.translate(type.chat.translationKey, data = data)
|
||||
Language.translate(type.chat.translationKey, restrictedMode = true, data = data)
|
||||
}
|
||||
text.setFallbackColor(ChatUtil.DEFAULT_CHAT_COLOR)
|
||||
}
|
||||
|
@ -74,11 +74,11 @@ object LanguageUtil {
|
||||
return this.replace("\\n", "\n")
|
||||
}
|
||||
|
||||
fun getFallbackTranslation(key: ResourceLocation?, parent: TextComponent?, vararg data: Any?): ChatComponent {
|
||||
fun getFallbackTranslation(key: ResourceLocation?, parent: TextComponent?, restrictedMode: Boolean = false, vararg data: Any?): ChatComponent {
|
||||
if (data.isEmpty()) {
|
||||
return ChatComponent.of(key.toString(), null, parent)
|
||||
return ChatComponent.of(key.toString(), null, parent, restrictedMode)
|
||||
}
|
||||
return ChatComponent.of(key.toString() + "->" + data.contentToString(), null, parent)
|
||||
return ChatComponent.of(key.toString() + "->" + data.contentToString(), null, parent, restrictedMode)
|
||||
}
|
||||
|
||||
fun loadLanguage(language: String, assetsManager: AssetsManager, json: Boolean, path: ResourceLocation): Translator {
|
||||
|
@ -28,9 +28,9 @@ class Language(
|
||||
return data.containsKey(key?.path)
|
||||
}
|
||||
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, vararg data: Any?): ChatComponent {
|
||||
val placeholder = this.data[key?.path] ?: return LanguageUtil.getFallbackTranslation(key, parent, *data)
|
||||
return Companion.translate(placeholder, parent, this, *data)
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, restrictedMode: Boolean, vararg data: Any?): ChatComponent {
|
||||
val placeholder = this.data[key?.path] ?: return LanguageUtil.getFallbackTranslation(key, parent, restrictedMode, *data)
|
||||
return Companion.translate(placeholder, parent, this, restrictedMode, *data)
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
@ -42,7 +42,7 @@ class Language(
|
||||
private val FORMATTER_SPLIT_REGEX = "%[ds]".toRegex() // %s fell from a high place
|
||||
|
||||
|
||||
fun translate(placeholder: String, parent: TextComponent? = null, translator: Translator? = null, vararg data: Any?): ChatComponent {
|
||||
fun translate(placeholder: String, parent: TextComponent? = null, translator: Translator? = null, restrictedMode: Boolean = false, vararg data: Any?): ChatComponent {
|
||||
|
||||
val ret = BaseComponent()
|
||||
|
||||
@ -77,9 +77,9 @@ class Language(
|
||||
|
||||
// create base component
|
||||
for ((index, part) in splitPlaceholder.withIndex()) {
|
||||
ret += ChatComponent.of(part, translator, parent)
|
||||
ret += ChatComponent.of(part, translator, parent, restrictedMode)
|
||||
if (index < data.size) {
|
||||
ret += ChatComponent.of(arguments[index], translator, parent)
|
||||
ret += ChatComponent.of(arguments[index], translator, parent, restrictedMode)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,12 +32,12 @@ class LanguageList(
|
||||
return false
|
||||
}
|
||||
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, vararg data: Any?): ChatComponent {
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, restrictedMode: Boolean, vararg data: Any?): ChatComponent {
|
||||
for (language in list) {
|
||||
if (language.canTranslate(key)) {
|
||||
return language.translate(key, parent, data)
|
||||
return language.translate(key, parent, restrictedMode, data)
|
||||
}
|
||||
}
|
||||
return LanguageUtil.getFallbackTranslation(key, parent, data)
|
||||
return LanguageUtil.getFallbackTranslation(key, parent, restrictedMode, data)
|
||||
}
|
||||
}
|
||||
|
@ -33,13 +33,13 @@ class LanguageManager(
|
||||
return false
|
||||
}
|
||||
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, vararg data: Any?): ChatComponent {
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, restrictedMode: Boolean, vararg data: Any?): ChatComponent {
|
||||
for (language in languages) {
|
||||
if (!language.canTranslate(key)) {
|
||||
continue
|
||||
}
|
||||
return language.translate(key, parent, *data)
|
||||
return language.translate(key, parent, restrictedMode, *data)
|
||||
}
|
||||
return LanguageUtil.getFallbackTranslation(key, parent, data)
|
||||
return LanguageUtil.getFallbackTranslation(key, parent, restrictedMode, data)
|
||||
}
|
||||
}
|
||||
|
@ -27,9 +27,9 @@ class MultiLanguageManager(
|
||||
return translators[key.namespace]?.canTranslate(key) == true
|
||||
}
|
||||
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, vararg data: Any?): ChatComponent {
|
||||
key ?: return ChatComponent.of("null: ${data.contentToString()}")
|
||||
override fun translate(key: ResourceLocation?, parent: TextComponent?, restrictedMode: Boolean, vararg data: Any?): ChatComponent {
|
||||
key ?: return ChatComponent.of("null: ${data.contentToString()}", restrictedMode = restrictedMode)
|
||||
|
||||
return translators[key.namespace]?.translate(key, parent, *data) ?: ChatComponent.of("$key: ${data.contentToString()}")
|
||||
return translators[key.namespace]?.translate(key, parent, restrictedMode, *data) ?: ChatComponent.of("$key: ${data.contentToString()}", restrictedMode = restrictedMode)
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,8 @@ interface Translator {
|
||||
|
||||
fun canTranslate(key: ResourceLocation?): Boolean
|
||||
|
||||
fun translate(key: ResourceLocation?, parent: TextComponent? = null, vararg data: Any?): ChatComponent
|
||||
fun translate(key: ResourceLocation?, parent: TextComponent? = null, vararg data: Any?): ChatComponent = translate(key, parent, false, *data)
|
||||
fun translate(key: ResourceLocation?, parent: TextComponent? = null, restrictedMode: Boolean = false, vararg data: Any?): ChatComponent
|
||||
|
||||
|
||||
fun translate(translatable: Any?): ChatComponent {
|
||||
|
@ -150,14 +150,14 @@ class BaseComponent : ChatComponent {
|
||||
fun parseExtra() {
|
||||
json["extra"].toJsonList()?.let {
|
||||
for (data in it) {
|
||||
parts += ChatComponent.of(data, translator, currentParent)
|
||||
parts += ChatComponent.of(data, translator, currentParent, restrictedMode)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
json["text"]?.nullCast<String>()?.let {
|
||||
if (it.indexOf(ProtocolDefinition.TEXT_COMPONENT_SPECIAL_PREFIX_CHAR) != -1) {
|
||||
this += ChatComponent.of(it, translator, parent)
|
||||
this += ChatComponent.of(it, translator, parent, restrictedMode)
|
||||
parseExtra()
|
||||
return
|
||||
}
|
||||
@ -199,7 +199,7 @@ class BaseComponent : ChatComponent {
|
||||
with.add(part ?: continue)
|
||||
}
|
||||
}
|
||||
parts += translator?.translate(it.toResourceLocation(), currentParent, *with.toTypedArray()) ?: ChatComponent.of(json["with"], translator, currentParent)
|
||||
parts += translator?.translate(it.toResourceLocation(), currentParent, restrictedMode, *with.toTypedArray()) ?: ChatComponent.of(json["with"], translator, currentParent, restrictedMode)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,7 +99,7 @@ interface ChatComponent {
|
||||
return raw
|
||||
}
|
||||
if (raw is Translatable && raw !is ResourceLocation) {
|
||||
return (translator ?: Minosoft.LANGUAGE_MANAGER).translate(raw.translationKey, parent)
|
||||
return (translator ?: Minosoft.LANGUAGE_MANAGER).translate(raw.translationKey, parent, restrictedMode = restrictedMode)
|
||||
}
|
||||
|
||||
when (raw) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user