use buffered reader to load language files

This commit is contained in:
Moritz Zwerger 2023-10-08 22:10:13 +02:00
parent f7e9c7a35e
commit 29a00ca413
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -16,7 +16,6 @@ package de.bixilon.minosoft.data.language
import de.bixilon.kutil.exception.ExceptionUtil import de.bixilon.kutil.exception.ExceptionUtil
import de.bixilon.kutil.json.JsonObject import de.bixilon.kutil.json.JsonObject
import de.bixilon.minosoft.assets.AssetsManager import de.bixilon.minosoft.assets.AssetsManager
import de.bixilon.minosoft.assets.util.InputStreamUtil.readAsString
import de.bixilon.minosoft.assets.util.InputStreamUtil.readJsonObject import de.bixilon.minosoft.assets.util.InputStreamUtil.readJsonObject
import de.bixilon.minosoft.data.language.lang.Language import de.bixilon.minosoft.data.language.lang.Language
import de.bixilon.minosoft.data.language.lang.LanguageData import de.bixilon.minosoft.data.language.lang.LanguageData
@ -31,7 +30,9 @@ import de.bixilon.minosoft.data.text.ChatComponent
import de.bixilon.minosoft.data.text.TextComponent import de.bixilon.minosoft.data.text.TextComponent
import de.bixilon.minosoft.protocol.versions.Version import de.bixilon.minosoft.protocol.versions.Version
import de.bixilon.minosoft.util.KUtil.toResourceLocation import de.bixilon.minosoft.util.KUtil.toResourceLocation
import java.io.BufferedReader
import java.io.FileNotFoundException import java.io.FileNotFoundException
import java.io.InputStreamReader
object LanguageUtil { object LanguageUtil {
const val FALLBACK_LANGUAGE = "en_us" const val FALLBACK_LANGUAGE = "en_us"
@ -56,10 +57,11 @@ object LanguageUtil {
return data return data
} }
fun loadLanguage(lines: Sequence<String>): LanguageData { fun loadLanguage(lines: BufferedReader): LanguageData {
val data: LanguageData = HashMap() val data: LanguageData = HashMap()
for (line in lines) { while (true) {
val line = lines.readLine() ?: break
if (line.isBlank() || line.startsWith("#")) { if (line.isBlank() || line.startsWith("#")) {
continue continue
} }
@ -87,7 +89,7 @@ object LanguageUtil {
val languages: MutableList<Language> = mutableListOf() val languages: MutableList<Language> = mutableListOf()
for (asset in assets) { for (asset in assets) {
val data = if (json) loadJsonLanguage(asset.readJsonObject()) else loadLanguage(asset.readAsString().lineSequence()) val data = if (json) loadJsonLanguage(asset.readJsonObject()) else loadLanguage(BufferedReader(InputStreamReader(asset, Charsets.UTF_8)))
languages += Language(language, data) languages += Language(language, data)
} }