ForgePatch/patches/minecraft/net/minecraft/util/text/translation/LanguageMap.java.patch

43 lines
1.8 KiB
Diff

--- a/net/minecraft/util/text/translation/LanguageMap.java
+++ b/net/minecraft/util/text/translation/LanguageMap.java
@@ -26,21 +26,34 @@
private long field_150511_e;
public LanguageMap() {
- try {
InputStream inputstream = LanguageMap.class.getResourceAsStream("/assets/minecraft/lang/en_us.json");
+ injectLanguage(this, inputstream);
+ }
+
+ public static void injectLanguage(InputStream inputStream){
+ injectLanguage(field_197636_c, inputStream);
+ }
+
+ private static void injectLanguage(LanguageMap inst, InputStream inputStream){
+ final Map<String, String> map = parseLanguageFile(inputStream);
+ inst.field_74816_c.putAll(map);
+ inst.field_150511_e = System.currentTimeMillis();
+ }
+
+ private static Map<String, String> parseLanguageFile(InputStream inputstream) {
+ Map<String,String> languageList = Maps.newHashMap();
+ try {
JsonElement jsonelement = (JsonElement)(new Gson()).fromJson(new InputStreamReader(inputstream, StandardCharsets.UTF_8), JsonElement.class);
JsonObject jsonobject = JsonUtils.func_151210_l(jsonelement, "strings");
for(Entry<String, JsonElement> entry : jsonobject.entrySet()) {
String s = field_111053_a.matcher(JsonUtils.func_151206_a(entry.getValue(), entry.getKey())).replaceAll("%$1s");
- this.field_74816_c.put(entry.getKey(), s);
+ languageList.put(entry.getKey(), s);
}
-
- this.field_150511_e = Util.func_211177_b();
} catch (JsonParseException jsonparseexception) {
field_201045_a.error("Couldn't read strings from /assets/minecraft/lang/en_us.json", (Throwable)jsonparseexception);
}
-
+ return languageList;
}
public static LanguageMap func_74808_a() {