Files
CatServer/patches/net/minecraft/util/text/translation/LanguageMap.java.patch
2019-11-03 08:33:28 +08:00

64 lines
2.1 KiB
Diff

--- ../src-base/minecraft/net/minecraft/util/text/translation/LanguageMap.java
+++ ../src-work/minecraft/net/minecraft/util/text/translation/LanguageMap.java
@@ -23,10 +23,38 @@
public LanguageMap()
{
+ InputStream inputstream = LanguageMap.class.getResourceAsStream("/assets/minecraft/lang/en_us.lang");
try
{
- InputStream inputstream = LanguageMap.class.getResourceAsStream("/assets/minecraft/lang/en_us.lang");
+ inject(this, inputstream);
+ }
+ finally
+ {
+ IOUtils.closeQuietly(inputstream); // Forge: close stream after use (MC-153470)
+ }
+ }
+
+ public static void inject(InputStream inputstream)
+ {
+ inject(instance, inputstream);
+ }
+
+ private static void inject(LanguageMap inst, InputStream inputstream)
+ {
+ Map<String, String> map = parseLangFile(inputstream);
+ inst.languageList.putAll(map);
+ inst.lastUpdateTimeInMilliseconds = System.currentTimeMillis();
+ }
+
+ public static Map<String, String> parseLangFile(InputStream inputstream)
+ {
+ Map<String, String> table = Maps.newHashMap();
+ try
+ {
+ inputstream = net.minecraftforge.fml.common.FMLCommonHandler.instance().loadLanguage(table, inputstream);
+ if (inputstream == null) return table;
+
for (String s : IOUtils.readLines(inputstream, StandardCharsets.UTF_8))
{
if (!s.isEmpty() && s.charAt(0) != '#')
@@ -37,17 +65,18 @@
{
String s1 = astring[0];
String s2 = NUMERIC_VARIABLE_PATTERN.matcher(astring[1]).replaceAll("%$1s");
- this.languageList.put(s1, s2);
+ table.put(s1, s2);
}
}
}
- this.lastUpdateTimeInMilliseconds = System.currentTimeMillis();
}
catch (IOException var7)
{
;
}
+ catch (Exception ex) {}
+ return table;
}
static LanguageMap getInstance()